/** * Should only be called from a CentralStore or give unpredictable results * @param string $objectName * @param ReferenceableObject $ref * @param bool $nested * @param string $type * @return Address|AddressGroup|null */ public function find($objectName, $ref = null, $nested = true, $type = '') { $f = null; if (isset($this->all[$objectName])) { $this->all[$objectName]->addReference($ref); if ($type == 'tmp') { if ($this->all[$objectName]->isTmpAddr()) { return $this->all[$objectName]; } return null; } return $this->all[$objectName]; } if ($nested && isset($this->panoramaShared)) { $f = $this->panoramaShared->find($objectName, $ref, false, $type); if (!is_null($f)) { return $f; } } else { if ($nested && isset($this->panoramaDG)) { $f = $this->panoramaDG->find($objectName, $ref, false, $type); if (!is_null($f)) { return $f; } } } if ($nested && $this->parentCentralStore) { $f = $this->parentCentralStore->find($objectName, $ref, $nested, $type); } return $f; }