/**
  * {@inheritdoc}
  */
 public function getDerivativeDefinitions($base_plugin_definition)
 {
     $this->derivatives = array();
     if ($default = $this->searchPageRepository->getDefaultSearchPage()) {
         $active_search_pages = $this->searchPageRepository->getActiveSearchPages();
         foreach ($this->searchPageRepository->sortSearchPages($active_search_pages) as $entity_id => $entity) {
             $this->derivatives[$entity_id] = array('title' => $entity->label(), 'route_name' => 'search.view_' . $entity_id, 'base_route' => 'search.plugins:' . $default, 'weight' => $entity->getWeight());
         }
     }
     return $this->derivatives;
 }
 /**
  * Returns an array of route objects.
  *
  * @return \Symfony\Component\Routing\Route[]
  *   An array of route objects.
  */
 public function routes()
 {
     $routes = array();
     // @todo Decide if /search should continue to redirect to /search/$default,
     //   or just perform the appropriate search.
     if ($default_page = $this->searchPageRepository->getDefaultSearchPage()) {
         $routes['search.view'] = new Route('/search', array('_content' => 'Drupal\\search\\Controller\\SearchController::redirectSearchPage', '_title' => 'Search', 'entity' => $default_page), array('_entity_access' => 'entity.view', '_permission' => 'search content'), array('parameters' => array('entity' => array('type' => 'entity:search_page'))));
     }
     $active_pages = $this->searchPageRepository->getActiveSearchPages();
     foreach ($active_pages as $entity_id => $entity) {
         $routes["search.view_{$entity_id}"] = new Route('/search/' . $entity->getPath(), array('_content' => 'Drupal\\search\\Controller\\SearchController::view', '_title' => 'Search', 'entity' => $entity_id), array('_entity_access' => 'entity.view', '_permission' => 'search content'), array('parameters' => array('entity' => array('type' => 'entity:search_page'))));
     }
     return $routes;
 }