public function __construct(Container $container) { if ($container == NULL) { throw new e\NullAssetException(c\M::NULL_CONTAINER); } $this->root = $container; $root_children = $container->getChildren(); $this->has_children = count($root_children) > 0; if ($this->has_children) { $this->children = array(); foreach ($root_children as $root_child) { if ($root_child->getType() == $container->getType()) { $class_name = c\T::$type_class_name_map[$container->getType()]; $class_name = Asset::NAME_SPACE . "\\" . $class_name; $this->children[] = new AssetTree($class_name::getAsset($this->root->getService(), $container->getType(), $root_child->getId())); } else { $this->children[] = $root_child; } } } }