/**
  * Gets the moderation-form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function getModerationFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('moderation-form') && $entity_type->getFormClass('moderation')) {
         $entity_type_id = $entity_type->id();
         $route = new Route($entity_type->getLinkTemplate('moderation-form'));
         $route->setDefaults(['_entity_form' => "{$entity_type_id}.moderation", '_title' => 'Moderation'])->setRequirement('_permission', 'administer moderation states')->setOption('parameters', [$entity_type_id => ['type' => 'entity:' . $entity_type_id]]);
         return $route;
     }
 }
 /**
  * Gets the edit-form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function getEditFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('edit-form')) {
         $entity_type_id = $entity_type->id();
         $route = new Route($entity_type->getLinkTemplate('edit-form'));
         // Use the edit form handler, if available, otherwise default.
         $operation = 'default';
         if ($entity_type->getFormClass('edit')) {
             $operation = 'edit';
         }
         $route->setDefaults(['_entity_form' => "{$entity_type_id}.{$operation}", '_title_callback' => '\\Drupal\\Core\\Entity\\Controller\\EntityController::editTitle'])->setRequirement('_entity_access', "{$entity_type_id}.update")->setOption('parameters', [$entity_type_id => ['type' => 'entity:' . $entity_type_id]]);
         return $route;
     }
 }
 /**
  * Gets the add-form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function getAddFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('add-form')) {
         $entity_type_id = $entity_type->id();
         $route = new Route($entity_type->getLinkTemplate('add-form'));
         // Use the add form handler, if available, otherwise default.
         $operation = 'default';
         if ($entity_type->getFormClass('add')) {
             $operation = 'add';
         }
         $route->setDefaults(['_entity_form' => "{$entity_type_id}.{$operation}", '_title' => "Add {$entity_type->getLabel()}"])->setRequirement('_entity_create_access', $entity_type_id)->setOption('parameters', [$entity_type_id => ['type' => 'entity:' . $entity_type_id]])->setOption('_admin_route', TRUE);
         return $route;
     }
 }
 /**
  * Gets the add-form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function getAddFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('add-form')) {
         $entity_type_id = $entity_type->id();
         $parameters = [$entity_type_id => ['type' => 'entity:' . $entity_type_id]];
         $route = new Route($entity_type->getLinkTemplate('add-form'));
         // Content entities with bundles are added via a dedicated controller.
         if ($bundle_entity_type_id = $entity_type->getBundleEntityType()) {
             $route->setDefaults(['_controller' => 'Drupal\\custom_page\\Controller\\CustomPageAddController::addForm', '_title_callback' => 'Drupal\\custom_page\\Controller\\CustomPageAddController::getAddFormTitle'])->setRequirement('_entity_create_access', $entity_type_id . ':{' . $bundle_entity_type_id . '}');
             $parameters[$bundle_entity_type_id] = ['type' => 'entity:' . $bundle_entity_type_id];
         } else {
             // Use the add form handler, if available, otherwise default.
             $operation = 'default';
             if ($entity_type->getFormClass('add')) {
                 $operation = 'add';
             }
             $route->setDefaults(['_entity_form' => "{$entity_type_id}.{$operation}", '_title' => "Add {$entity_type->getLabel()}"])->setRequirement('_entity_create_access', $entity_type_id);
         }
         $route->setOption('parameters', $parameters)->setOption('_admin_route', TRUE);
         return $route;
     }
 }
 /**
  * Gets the edit-form route.
  *
  * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
  *   The entity type.
  *
  * @return \Symfony\Component\Routing\Route|null
  *   The generated route, if available.
  */
 protected function getEditFormRoute(EntityTypeInterface $entity_type)
 {
     if ($entity_type->hasLinkTemplate('edit-form')) {
         $entity_type_id = $entity_type->id();
         $route = new Route($entity_type->getLinkTemplate('edit-form'));
         // Use the edit form handler, if available, otherwise default.
         $operation = 'default';
         if ($entity_type->getFormClass('edit')) {
             $operation = 'edit';
         }
         $route->setDefaults(['_entity_form' => "{$entity_type_id}.{$operation}", '_title_callback' => '\\Drupal\\Core\\Entity\\Controller\\EntityController::editTitle'])->setRequirement('_entity_access', "{$entity_type_id}.update")->setOption('parameters', [$entity_type_id => ['type' => 'entity:' . $entity_type_id]]);
         // Entity types with serial IDs can specify this in their route
         // requirements, improving the matching process.
         if ($this->getEntityTypeIdKeyType($entity_type) === 'integer') {
             $route->setRequirement($entity_type_id, '\\d+');
         }
         return $route;
     }
 }