public function evaluate()
{
$controllerContext = $this->tsRuntime->getControllerContext();
$uriBuilder = $controllerContext->getUriBuilder()->reset();
$format = $this->getFormat();
if ($format !== null) {
$uriBuilder->setFormat($format);
}
$additionalParams = $this->getAdditionalParams();
if ($additionalParams !== null) {
$uriBuilder->setArguments($additionalParams);
}
$argumentsToBeExcludedFromQueryString = $this->getArgumentsToBeExcludedFromQueryString();
if ($argumentsToBeExcludedFromQueryString !== null) {
$uriBuilder->setArgumentsToBeExcludedFromQueryString($argumentsToBeExcludedFromQueryString);
}
$absolute = $this->isAbsolute();
if ($absolute === true) {
$uriBuilder->setCreateAbsoluteUri(true);
}
$section = $this->getSection();
if ($section !== null) {
$uriBuilder->setSection($section);
}
$addQueryString = $this->isAddQueryString();
if ($addQueryString === true) {
$uriBuilder->setAddQueryString(true);
}
try {
return $uriBuilder->uriFor($this->getAction(), $this->getArguments(), $this->getController(), $this->getPackage(), $this->getSubpackage());
} catch (\Exception $exception) {
return $this->tsRuntime->handleRenderingException($this->path, $exception);
}
}