/**
  * {@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;
 }