예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function removeAt($key)
 {
     $removed = parent::removeAt($key);
     if ($removed !== null) {
         $this->sort();
     }
     return $removed;
 }
예제 #2
0
 /**
  * {@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);
     }
 }
예제 #3
0
 /**
  * @param string $propertyName
  */
 public function remove($propertyName)
 {
     $this->properties->removeAt($propertyName);
 }