/** * Offset to set. * * @param mixed $index The offset to assign the value to. * @param mixed $newval The value to set. * * @return void * @throws \InvalidArgumentException When invalid element given. */ public function offsetSet($index, $newval) { $this->locateObject(); parent::offsetSet($index, $newval); }
/** * Locates object inside proxy. * * @return void */ protected function locateObject() { if ($this->locatorUsed) { return; } // NodeElement + TargetElement = Proxy. $this->locatorUsed = true; /** @var AbstractTypifiedElementCollection $object */ $object = call_user_func(array($this->className, 'fromNodeElements'), $this->locateElements(), null, $this->pageFactory); $object->setName($this->getName()); AbstractElementCollection::offsetSet(null, $object); $iterator = $this->getIterator(); /** @var ITypifiedElement $element */ foreach ($iterator as $element) { $element->setName($this->getName()); } }