/** * {@inheritdoc} */ public function removeAt($key) { $removed = parent::removeAt($key); if ($removed !== null) { $this->sort(); } return $removed; }
/** * {@inheritdoc} */ public function removeListener($eventName, callable $listener) { if (!$this->listeners->containsKey($eventName)) { return; } /** @var SortedArrayHashMap $sortedListeners */ $sortedListeners = $this->listeners->get($eventName); /** @var ArrayList $listeners */ foreach ($sortedListeners as $priority => $listeners) { foreach ($listeners as $registered) { /** @var DelegateListener $registered */ if ($registered->equals($listener)) { $listeners->remove($registered); } } if ($listeners->count() == 0) { $sortedListeners->removeAt($priority); } } if ($sortedListeners->count() == 0) { $this->listeners->removeAt($eventName); } }
/** * @param string $propertyName */ public function remove($propertyName) { $this->properties->removeAt($propertyName); }