/**
* Compiles the current route instance.
*
* Because so much of the parent class is private, we need to call the parent
* class's compile() method and then dissect its return value to build our
* new compiled object. If upstream gets refactored so we can subclass more
* easily then this may not be necessary.
*
* @param \Symfony\Component\Routing\Route $route
* A Route instance.
*
* @return \Drupal\Core\Routing\CompiledRoute
* A CompiledRoute instance.
*/
public static function compile(Route $route)
{
$symfony_compiled = parent::compile($route);
// The Drupal-specific compiled information.
$stripped_path = static::getPathWithoutDefaults($route);
$fit = static::getFit($stripped_path);
$pattern_outline = static::getPatternOutline($stripped_path);
$num_parts = count(explode('/', trim($pattern_outline, '/')));
return new CompiledRoute($route, $fit, $pattern_outline, $num_parts, $symfony_compiled->getStaticPrefix(), $symfony_compiled->getRegex(), $symfony_compiled->getTokens(), $symfony_compiled->getPathVariables(), $symfony_compiled->getHostRegex(), $symfony_compiled->getHostTokens(), $symfony_compiled->getHostVariables(), $symfony_compiled->getVariables());
}