/**
* Get a route based on Entity::route_name. eg Entities\User::get_users
* Syntax checking is performed
* @param string $name
* @param array $params
* @throws DrestException on invalid syntax or unmatched named route
* @return RouteMetaData $route
*/
protected function getNamedRoute($name, array $params = array())
{
if (substr_count($name, '::') !== 1) {
throw DrestException::invalidNamedRouteSyntax();
}
$parts = explode('::', $name);
// Allow exception to bubble up
$classMetaData = $this->getClassMetadata($parts[0]);
if (($route = $classMetaData->getRoutesMetaData($parts[1])) === false) {
throw DrestException::unableToFindRouteByName($parts[1], $classMetaData->getClassName());
}
$route->setRouteParams($params);
return $route;
}