public static function getDirections(Route $route, $version = 0)
 {
     /**
      * @var DB
      */
     $dbObj = DBPool::getInstance();
     $version = $version == 0 ? TableUpdate::getVersion() : $version;
     $dbObj->bindParams(array($route->getId(), $version));
     $directions = $dbObj->get_results("SELECT * FROM direction WHERE route_id=?\n            AND version = ?");
     if ($dbObj->num_rows > 0) {
         $directionArray = array();
         foreach ($directions as $d) {
             $dirObj = new Direction();
             $dirObj->setId($d->id);
             $dirObj->setName($d->name);
             $dirObj->setPrettyName($d->pretty_name);
             $dirObj->setRoute($route);
             $dirObj->setTag($d->tag);
             $dirObj->setTitle($d->title);
             $dirObj->setPrettyTitle($d->pretty_title);
             $dirObj->setUseForUi($d->use_for_ui);
             $dirObj->setShow($d->show);
             $directionArray[$d->tag] = $dirObj;
         }
         return $directionArray;
     } else {
         //TODO: Don't use a generic exception
         throw new Exception("No data available - Direction::getDirections");
     }
 }
 protected function add(array $directions)
 {
     $insertCnt = 0;
     $version = TableUpdate::getVersion();
     foreach ($directions as $d) {
         $boundParams = array($this->route->getId(), $d->getTitle(), $this->getPrettyTitle($d->getTitle()), $d->getName(), $this->getPrettyName($d->getName()), $d->getTag(), $d->getUseForUi() ? 1 : 0, $d->getShow() ? 1 : 0, $version);
         //var_dump($boundParams);
         $this->dbObj->bindParams($boundParams);
         $query = "INSERT INTO direction (route_id, title, pretty_title,\n                name, pretty_name, tag, use_for_ui, show, version, created_date)\n                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())";
         $this->dbObj->query($query);
         //$this->dbObj->debug();
         //print $query;
         if ($this->dbObj->rows_affected != 1) {
             throw new DBException("Addition of direction failed [agency:" . $this->route->getAgency()->getId() . "] [route tag:" . $this->route->getTag() . "] [route title:" . $this->route->getTitle() . "]");
         }
         $insertCnt++;
     }
     //TODO: Add a log for the total number of directions added
     //Write the changes to the change log
     $this->saveChangesToFile();
 }