tree === null) { $this->tree = new TemplateTree($this->type, $this->connection); } return $this->tree; } /** * @param IcingaObject $object * @return IcingaObject[] */ public function getTemplatesFor(IcingaObject $object) { $ids = $this->tree()->listAncestorIdsFor($object); $templates = []; foreach ($ids as $id) { if (! array_key_exists($id, $this->loadedById)) { // TODO: load only missing ones at once $this->loadedById[$id] = $object::loadWithAutoIncId( $id, $this->connection ); } $templates[$id] = $this->loadedById[$id]; } return $templates; } /** * @param IcingaObject $object * @return IcingaObject[] */ public function getTemplatesIndexedByNameFor(IcingaObject $object) { $templates = []; foreach ($this->getTemplatesFor($object) as $template) { $templates[$template->getObjectName()] = $template; } return $templates; } public function persistImportNames() { } public function storeChances(Db $db) { } }