org.apache.wicket.request.target.coding
Class MixedParamUrlCodingStrategy

java.lang.Object
  extended by org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy
      extended by org.apache.wicket.request.target.coding.BookmarkablePageRequestTargetUrlCodingStrategy
          extended by org.apache.wicket.request.target.coding.MixedParamUrlCodingStrategy
All Implemented Interfaces:
IMountableRequestTargetUrlCodingStrategy, IRequestTargetUrlCodingStrategy

public class MixedParamUrlCodingStrategy
extends BookmarkablePageRequestTargetUrlCodingStrategy

Url coding strategy for bookmarkable pages that encodes a set of given parameters in the url's path and the rest in the query-string.

Strategy looks for path-parameters whose name is read from an array of names e.g. ["param0", "param1"]. Found parameters will be appended to the url in the form /mount-path/paramvalue0/paramvalue1.

All other parameters are added as parameter in the form: /mount-path/paramvalue0?otherparam0=otherparamvalue0&otherparam1=otherparamvalue1.

Decode is symmetric except for when a path parameter that is not at the end has no value during encode. For example, the names for the path parameters are: "a", "b" and "c". When "b" is not specified upon encoding, but "c" is, upon a decode "b" will get the empty string as value. When both "b" and "c" are missing on encode, the will not get a value during decode.

Author:
erik.van.oosten

Field Summary
 
Fields inherited from class org.apache.wicket.request.target.coding.BookmarkablePageRequestTargetUrlCodingStrategy
bookmarkablePageClassRef
 
Constructor Summary
MixedParamUrlCodingStrategy(String mountPath, Class<C> bookmarkablePageClass, String[] parameterNames)
          Construct.
MixedParamUrlCodingStrategy(String mountPath, Class<C> bookmarkablePageClass, String pageMapName, String[] parameterNames)
          Construct.
 
Method Summary
protected  void appendParameters(AppendingStringBuffer url, Map<String,?> parameters)
          Encodes Map into a url fragment and append that to the provided url buffer.
protected  ValueMap decodeParameters(String urlFragment, Map<String,?> urlParameters)
          Decodes parameters object from the provided url fragment
 MixedParamUrlCodingStrategy setIgnoreUndeclaredParameters(boolean ignoreUndeclaredParameters)
           
 
Methods inherited from class org.apache.wicket.request.target.coding.BookmarkablePageRequestTargetUrlCodingStrategy
decode, encode, matches, toString
 
Methods inherited from class org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy
appendPathParameter, getMountPath, matches, urlDecode, urlDecodePathComponent, urlDecodeQueryComponent, urlEncode, urlEncodePathComponent, urlEncodeQueryComponent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MixedParamUrlCodingStrategy

public MixedParamUrlCodingStrategy(String mountPath,
                                   Class<C> bookmarkablePageClass,
                                   String pageMapName,
                                   String[] parameterNames)
Construct.

Type Parameters:
C -
Parameters:
mountPath - mount path
bookmarkablePageClass - class of mounted page
pageMapName - name of pagemap
parameterNames - the parameter names (not null)

MixedParamUrlCodingStrategy

public MixedParamUrlCodingStrategy(String mountPath,
                                   Class<C> bookmarkablePageClass,
                                   String[] parameterNames)
Construct.

Type Parameters:
C -
Parameters:
mountPath - mount path (not empty)
bookmarkablePageClass - class of mounted page (not null)
parameterNames - the parameter names (not null)
Method Detail

setIgnoreUndeclaredParameters

public MixedParamUrlCodingStrategy setIgnoreUndeclaredParameters(boolean ignoreUndeclaredParameters)
Parameters:
ignoreUndeclaredParameters - true to ignore undeclared parameters in the URL (still logged), false to throw an exception when this happens (default is true)
Returns:
this

appendParameters

protected void appendParameters(AppendingStringBuffer url,
                                Map<String,?> parameters)
Description copied from class: AbstractRequestTargetUrlCodingStrategy
Encodes Map into a url fragment and append that to the provided url buffer.

Overrides:
appendParameters in class AbstractRequestTargetUrlCodingStrategy
Parameters:
url - url so far
parameters - Map object to be encoded
See Also:
AbstractRequestTargetUrlCodingStrategy.appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)

decodeParameters

protected ValueMap decodeParameters(String urlFragment,
                                    Map<String,?> urlParameters)
Description copied from class: AbstractRequestTargetUrlCodingStrategy
Decodes parameters object from the provided url fragment

Overrides:
decodeParameters in class AbstractRequestTargetUrlCodingStrategy
Parameters:
urlFragment - fragment of the url after the decoded path and before the query string
urlParameters - query string parameters
Returns:
Parameters created from the url fragment and query string
See Also:
AbstractRequestTargetUrlCodingStrategy.decodeParameters(java.lang.String, java.util.Map)


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