/**
  * Cronk iterator
  *
  * Queries the database, iterate over all
  * cronks and create a CronkStructure object.
  *
  * For each cronk the abstract method in this class
  * is called
  */
 protected function cronkStructIterator()
 {
     $cronksQuery = Doctrine_Query::create()->select('*')->from('Cronk c');
     $cronks = $cronksQuery->execute();
     /** @var $cronk Cronk */
     $cronk = null;
     /** @var $structs CronkStruct[] */
     $structs = array();
     foreach ($cronks as $cronk) {
         $cronkStruct = new CronkStruct($cronk);
         $this->log('Testing cronk ' . $cronkStruct->getName());
         $this->upgradeMethod($cronkStruct);
         $update = $cronkStruct->persistToDatabase();
         if ($update) {
             $this->log('Cronk changed', Project::MSG_WARN);
             continue;
         }
         $this->log('Nothing to to', Project::MSG_INFO);
     }
 }
 /**
  * Drops the layout state from each cronk
  *
  * @param CronkStruct $struct
  * @return mixed|void
  */
 protected function upgradeMethod(CronkStruct $struct)
 {
     $struct->upgradeFilter();
 }
 /**
  * Drops the layout state from each cronk
  *
  * @param CronkStruct $struct
  * @return mixed|void
  */
 protected function upgradeMethod(CronkStruct $struct)
 {
     $struct->dropLayoutState();
 }