org.apache.wicket.request
Interface IRequestMapper

All Known Subinterfaces:
ICompoundRequestMapper
All Known Implementing Classes:
AbstractBookmarkableMapper, AbstractComponentMapper, AbstractResourceReferenceMapper, BookmarkableMapper, BufferedResponseMapper, CompoundRequestMapper, CryptoMapper, CustomHomeMapper, HomePageMapper, HttpsMapper, LocaleFirstMapper, MountedMapper, PageInstanceMapper, ParentPathReferenceRewriter, ResourceReferenceMapper, SystemMapper

public interface IRequestMapper

Encodes IRequestHandler(s) into Url(s) and decodes Request(s) to IRequestHandler(s). For IRequestHandlers and Requests the implementation doesn't know the mapHandler(IRequestHandler) and mapRequest(Request) methods must return null.

Author:
Matej Knopp

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.
 

Method Detail

mapRequest

IRequestHandler mapRequest(Request request)
Returns IRequestHandler for the request or null if the encoder does not recognize the URL.

Parameters:
request - provides access to request data (i.e. Url and Parameters)
Returns:
RequestHandler instance or null

getCompatibilityScore

int getCompatibilityScore(Request request)
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.

Parameters:
request -
Returns:
count of matching segments

mapHandler

Url mapHandler(IRequestHandler requestHandler)
Returns the Url for given IRequestHandler or null if the encoder does not recognize the request handler.

Parameters:
requestHandler -
Returns:
Url instance or null.


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