/**
  * Denormalizes relationship(s) 
  *
  * @param Doctrine_Record $invoker
  * @return void
  */
 protected function denormalize($invoker)
 {
     $relations = $this->_options['relations'];
     foreach ($relations as $relation) {
         $column = Doctrine_Template_Serializable::getColumnName($relation, $this->_options['column_suffix']);
         if ("" !== $invoker->{$column}) {
             if (!is_array($invoker->{$column})) {
                 $invoker->{$column} = explode($this->_options['post_separator'], $invoker->{$column});
             }
             $invoker->{$column} = $this->getSerializedIds($invoker->{$column});
         }
     }
 }
 /**
  * Deserializes relationship(s)
  *
  * @param Doctrine_Event $event
  * @return void
  */
 public function postHydrate(Doctrine_Event $event)
 {
     $data = $event->data;
     $relations = $this->_options['relations'];
     foreach ($relations as $relation) {
         $column = Doctrine_Template_Serializable::getColumnName($relation, $this->_options['column_suffix']);
         $filter = $data[$column];
         $model = Doctrine_Inflector::classify($relation['table']);
         if (!isset($relation['table_method'])) {
             $query = Doctrine_Core::getTable($model)->createQuery();
             if (isset($relation['order_by'])) {
                 $order = $relation['order_by'];
                 $query->addOrderBy($order[0] . ' ' . $order[1]);
             }
             $query->setHydrationMode(Doctrine_Core::HYDRATE_ARRAY);
             $objects = $query->execute();
         } else {
             $tableMethod = $relation['table_method'];
             $results = Doctrine_Core::getTable($model)->{$tableMethod}();
             if ($results instanceof Doctrine_Query) {
                 $objects = $results->execute();
             } else {
                 if ($results instanceof Doctrine_Collection) {
                     $objects = $results;
                 } else {
                     if ($results instanceof Doctrine_Record) {
                         $objects = new Doctrine_Collection($model);
                         $objects[] = $results;
                     } else {
                         $objects = array();
                     }
                 }
             }
         }
         // replace value of column
         $data[$column] = $this->normalize($objects, $filter);
     }
     $event->data = $data;
 }