org.apache.wicket.request.mapper
Class ResourceMapper

java.lang.Object
  extended by org.apache.wicket.request.mapper.AbstractMapper
      extended by org.apache.wicket.request.mapper.ResourceMapper
All Implemented Interfaces:
IRequestMapper

public class ResourceMapper
extends AbstractMapper
implements IRequestMapper

mapper to mount resources to a custom mount path

sample structure of url

    /articles/images/[indexed-param-0]/[indexed-param-1]?[named-param-1=value]&[named-param-2=value2]
 

sample usage

in your wicket application's init() method use a statement like this

 getRootRequestMapperAsCompound().add(new ResourceMapper("/images", new ImagesResourceReference()));
 

Author:
Peter Ertl

Constructor Summary
ResourceMapper(String path, ResourceReference resourceReference)
          create a resource mapper for a resource
 
Method Summary
 int getCompatibilityScore(Request request)
          Returns the score representing how compatible this request mapper is to processing the given request.
 Url mapHandler(IRequestHandler requestHandler)
          Returns the Url for given IRequestHandler or null if the encoder does not recognize the request handler.
 IRequestHandler mapRequest(Request request)
          Returns IRequestHandler for the request or null if the encoder does not recognize the URL.
 
Methods inherited from class org.apache.wicket.request.mapper.AbstractMapper
encodePageParameters, extractPageParameters, getMountSegments, getPlaceholder, removeMetaParameter, urlStartsWith
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceMapper

public ResourceMapper(String path,
                      ResourceReference resourceReference)
create a resource mapper for a resource

Parameters:
path - mount path for the resource
resourceReference - resource reference that should be linked to the mount path
Method Detail

mapRequest

public IRequestHandler mapRequest(Request request)
Description copied from interface: IRequestMapper
Returns IRequestHandler for the request or null if the encoder does not recognize the URL.

Specified by:
mapRequest in interface IRequestMapper
Parameters:
request - provides access to request data (i.e. Url and Parameters)
Returns:
RequestHandler instance or null
See Also:
IRequestMapper.mapRequest(org.apache.wicket.request.Request)

getCompatibilityScore

public int getCompatibilityScore(Request request)
Description copied from interface: IRequestMapper
Returns the score representing how compatible this request mapper is to processing the given request. When a request comes in all mappers are scored and are tried in order from highest score to lowest.

A good criteria for calculating the score is the number of matched url segments. For example when there are two encoders for mounted page, one mapped to /foo another to /foo/bar and the incoming request URL is /foo/bar/baz, the encoder mapped to /foo/bar will handle the request first as it has matching segments count of 2 while the first one has only matching segments count of 1.

Note that the method can return value greater then zero even if the encoder can not decode the request.

Specified by:
getCompatibilityScore in interface IRequestMapper
Returns:
count of matching segments
See Also:
IRequestMapper.getCompatibilityScore(org.apache.wicket.request.Request)

mapHandler

public Url mapHandler(IRequestHandler requestHandler)
Description copied from interface: IRequestMapper
Returns the Url for given IRequestHandler or null if the encoder does not recognize the request handler.

Specified by:
mapHandler in interface IRequestMapper
Returns:
Url instance or null.
See Also:
IRequestMapper.mapHandler(org.apache.wicket.request.IRequestHandler)


Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.