protected function convertRequestPathToNode($requestPath)
{
$contentContext = $this->buildContextFromRequestPath($requestPath);
$requestPathWithoutContext = $this->removeContextFromPath($requestPath);
$workspace = $contentContext->getWorkspace();
if ($workspace === null) {
throw new Exception\NoWorkspaceException(sprintf('No workspace found for request path "%s"', $requestPath), 1346949318);
}
$site = $contentContext->getCurrentSite();
if ($site === null) {
throw new Exception\NoSiteException(sprintf('No site found for request path "%s"', $requestPath), 1346949693);
}
$siteNode = $contentContext->getCurrentSiteNode();
if ($siteNode === null) {
$currentDomain = $contentContext->getCurrentDomain() ? 'Domain with hostname "' . $contentContext->getCurrentDomain()->getHostname() . '" matched.' : 'No specific domain matched.';
throw new Exception\NoSiteNodeException(sprintf('No site node found for request path "%s". %s', $requestPath, $currentDomain), 1346949728);
}
if ($requestPathWithoutContext === '') {
$node = $siteNode;
} else {
$relativeNodePath = $this->getRelativeNodePathByUriPathSegmentProperties($siteNode, $requestPathWithoutContext);
$node = $relativeNodePath !== false ? $siteNode->getNode($relativeNodePath) : null;
}
if (!$node instanceof NodeInterface) {
throw new Exception\NoSuchNodeException(sprintf('No node found on request path "%s"', $requestPath), 1346949857);
}
return $node;
}