Ejemplo n.º 1
0
 public function prepareObject(TypeInterface $controller, $parent = null)
 {
     $config = $controller->getConfig();
     $class = $config['storage'];
     $object = new $class();
     if (null !== $parent) {
         $baseclass = \midcom_helper_reflector::resolve_baseclass($class);
         $reflector = new \midgard_reflection_property($baseclass);
         $up_property = \midgard_object_class::get_property_up($baseclass);
         if (!empty($up_property)) {
             $target_property = $reflector->get_link_target($up_property);
             $target_class = $reflector->get_link_name($up_property);
             if (\midcom_helper_reflector::resolve_baseclass($parent) === $target_class) {
                 $object->{$up_property} = $parent->{$target_property};
             }
         }
         $parent_property = \midgard_object_class::get_property_parent($baseclass);
         if (!empty($parent_property)) {
             $target_property = $reflector->get_link_target($parent_property);
             $target_class = $reflector->get_link_name($parent_property);
             if (\midcom_helper_reflector::resolve_baseclass($parent) === $target_class) {
                 $object->{$parent_property} = $parent->{$target_property};
             } else {
                 $object->{$parent_property} = $parent->{$parent_property};
             }
         }
     }
     return $object;
 }