/**
  * Adds a binding to this index.
  *
  * @param \Drupal\drupalmoduleupgrader\Routing\LinkBinding\LinkBinding $binding
  */
 public function addBinding(LinkBinding $binding)
 {
     $id = $binding->getIdentifier();
     if (isset($this->idiotBox[$id])) {
         $id .= '_' . $this->idiotBox[$id]++;
     } else {
         $this->idiotBox[$id] = 0;
     }
     $this->set($binding->getSource()->getPath()->__toString(), $binding);
     $binding->onIndexed($id, $this);
 }
 /**
  * {@inheritdoc}
  */
 public function build()
 {
     $link = parent::build();
     $source = $this->getSource();
     if ($source->isDefaultLocalTask()) {
         $link['base_route'] = $link['route_name'];
     } elseif ($source->isLocalTask()) {
         $default_task = $source->getDefaultTask();
         if ($default_task) {
             $path = $default_task->getPath()->__toString();
             if ($this->index->containsKey($path)) {
                 $link['base_route'] = $this->index[$path]->getDestination()->getIdentifier();
             }
         }
     }
     if ($source->hasParent()) {
         $parent = $source->getParent();
         if ($parent->isLocalTask() || $parent->isDefaultLocalTask()) {
             $parent_id = $this->getParentID();
             if ($parent_id) {
                 unset($link['base_route']);
                 $link['parent_id'] = $parent_id;
             }
         }
     }
     return $link;
 }