public IRequestHandler mapRequest(final Request request)
{
final Url url = new Url(request.getUrl());
// now extract the page parameters from the request url
PageParameters parameters = extractPageParameters(request, mountSegments.length,
parametersEncoder);
// remove caching information from current request
removeCachingDecoration(url, parameters);
// check if url matches mount path
if (urlStartsWith(url, mountSegments) == false)
{
return null;
}
// check if there are placeholders in mount segments
for (int index = 0; index < mountSegments.length; ++index)
{
String placeholder = getPlaceholder(mountSegments[index]);
if (placeholder != null)
{
// extract the parameter from URL
if (parameters == null)
{
parameters = new PageParameters();
}
parameters.add(placeholder, url.getSegments().get(index), INamedParameters.Type.PATH);
}
}
return new ResourceReferenceRequestHandler(resourceReference, parameters);
}