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;
             }
         }
     }
 }