Пример #1
0
 /**
  * BE AWARE that changing (not only insert) the NodeList requires a full information update
  * @param $position
  * @param RideNode $rideNode
  */
 public function switchRideNodeAtPosition($position, RideNode $rideNode)
 {
     $switchNode = $this->rideNodes[$position];
     $prev = $switchNode->previousNode;
     $next = $switchNode->nextNode;
     if ($prev) {
         $rideNode->setPreviousNode($prev);
         $prev->setNextNode($rideNode);
     } else {
         $rideNode->removePreviousNode();
     }
     if ($next) {
         $rideNode->setNextNode($next);
         $next->setPreviousNode($rideNode);
     } else {
         $rideNode->removeNextNode();
     }
     if ($this->lastNode === $switchNode) {
         $this->setLastNode($rideNode);
     }
     if ($this->firstNode === $switchNode) {
         $this->setFirstNode($rideNode);
     }
     $this->rideNodes[$position] = $rideNode;
 }