/** * <p>Liefert ein gespeichertes Entity zurück.</p> * <p>Wurde ein Entity übergeben und es war noch kein Entity gespeichert, * so wird dieses Entity gespeichert und zurückgegeben.</p> * @param Dkplus_Model_Domain_Entity_IEntity|string|int $soiEntity * @return Dkplus_Model_Domain_Entity_IEntity|null <p>Wurde kein Entity * gefunden, so wird null zurückgegeben.</p> */ public function getEntity($soiEntity) { //Ein Entity-Objekt wurde übergeben if ($soiEntity instanceOf Dkplus_Model_Domain_Entity_IEntity) { $siEntity = $soiEntity->getUniqueIdentifier(); if (!isset($this->_aEntities[$siEntity])) { $this->_aEntities[$siEntity] = $soiEntity; } return $this->_aEntities[$siEntity]; } if ((is_int($soiEntity)) || (is_string($soiEntity)) ) { return isset($this->_aEntities[$soiEntity]) ? $this->_aEntities[$soiEntity] : null; } throw new Dkplus_Model_Exception( sprintf('First Parameter has an invalid type "%s", must be an ' . 'Dkplus_Model_Domain_Entity_IEntity, integer or string.', getType($iOffset))); }
/** * <p>Entfernt ein Entity aus der Collection.</p> * @param Dkplus_Model_Domain_Entity_IEntity|int $mEntity * @return Dkplus_Model_Domain_Collection_CollectionAbstract */ protected function _removeEntity($mEntity) { //Suchen des Indexes, wenn eine Instance gegeben wurde. if ($mEntity instanceof Dkplus_Model_Domain_Entity_IEntity) { for ($i = 0; $i < count($this->_aEntities); ++$i) { if ($mEntity->equals($this->_aEntities[$i])) { $mEntity = $i; break; } } } //Index nicht gefunden oder kein Integer übergeben. if (!is_int($mEntity)) { throw new Dkplus_Model_Exception(sprintf('First parameter has an invalid type "%s", must be an ' . 'integer or an instance of ' . 'Dkplus_Model_Domain_Entity_IEntity that is already ' . 'in the collection.', getType($iOffset))); } //Falscher Index übergeben. if (!isset($this->_aEntities[$mEntity])) { throw new Dkplus_Model_Exception('There is no Entity with offset ' . $mEntity . '.'); } //Soll die Entfernung gemeldet werden? if ($this->_bIsChangeMarked) { $this->_aRemovedEntities[] = $this->_aEntities[$mEntity]; } //Entfernen und neu-ordnen. unset($this->_aEntities[$mEntity]); $this->_aEntities = array_values($this->_aEntities); return $this; }