org.apache.cocoon.acting
Class RequestParameterExistsAction

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.cocoon.acting.AbstractAction
          extended by org.apache.cocoon.acting.AbstractConfigurableAction
              extended by org.apache.cocoon.acting.RequestParameterExistsAction
All Implemented Interfaces:
Component, Configurable, LogEnabled, Action

public class RequestParameterExistsAction
extends AbstractConfigurableAction

This action simply checks to see if a given request parameter exists. It takes an arbitrary number of default parameters to check named 'parameter-name'. Non-default parameters need to be separated by spaces and passed as value of a sitemap parameter named 'parameters'. The action returns a map with all parameters if all of them exist and null otherwise. Parameter names can only be added to this list but no default parameters can be overridden by specific ones.

This action is very closely related to @link{RequestParamAction} and FormValidatorAction. However this action is considerably simpler in that it tests only for existence of a parameter and it doesn't need a descriptor. Besides it doesn't propagate all request parameters to the sitemap but only those that are marked as required.

One special feature is, however, that parameters can contain one wildcard ("*"). It will be checked, whether all parameters with a wildcard have the same matches. E.g. "id_* name_*" enforces, that if "id_1" exists, "name_1" must also exist and vice versa.

Version:
CVS $Id: RequestParameterExistsAction.html 1304258 2012-03-23 10:09:27Z ilgrosso $
Author:
Christian Haul

Nested Class Summary
protected static class RequestParameterExistsAction.StringParts
           
 
Field Summary
 
Fields inherited from class org.apache.cocoon.acting.AbstractConfigurableAction
settings
 
Fields inherited from class org.apache.cocoon.acting.AbstractAction
EMPTY_MAP
 
Fields inherited from interface org.apache.cocoon.acting.Action
ROLE
 
Constructor Summary
RequestParameterExistsAction()
           
 
Method Summary
 Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters)
          Controls the processing against some values of the Dictionary objectModel and returns a Map object with values used in subsequent sitemap substitution patterns.
protected  String getMatch(String paramName, RequestParameterExistsAction.StringParts sp)
          If a String matches a StringPart spec, return the substring between the specified prefix and postfix.
protected  RequestParameterExistsAction.StringParts splitParameter(String paramName)
          Find first "*" in a String and split it into the substring before and after the "*".
 
Methods inherited from class org.apache.cocoon.acting.AbstractConfigurableAction
configure
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequestParameterExistsAction

public RequestParameterExistsAction()
Method Detail

act

public Map act(Redirector redirector,
               SourceResolver resolver,
               Map objectModel,
               String source,
               Parameters parameters)
        throws Exception
Description copied from interface: Action
Controls the processing against some values of the Dictionary objectModel and returns a Map object with values used in subsequent sitemap substitution patterns. NOTE: This interface is designed so that implentations can be ThreadSafe. When an action is ThreadSafe, only one instance serves all requests : this reduces memory usage and avoids pooling.

resolver - The SourceResolver in charge
objectModel - The Map with object of the calling environment which can be used to select values this controller may need (ie Request, Response).
source - A source String to the Action
parameters - The Parameters for this invocation
Returns:
Map The returned Map object with sitemap substitution values which can be used in subsequent elements attributes like src= using a xpath like expression: src="mydir/{myval}/foo" If the return value is null the processing inside the element of the sitemap will be skipped.
Throws:
Exception - Indicates something is totally wrong

splitParameter

protected RequestParameterExistsAction.StringParts splitParameter(String paramName)
Find first "*" in a String and split it into the substring before and after the "*". Returns null if no "*" is present.


getMatch

protected String getMatch(String paramName,
                          RequestParameterExistsAction.StringParts sp)
If a String matches a StringPart spec, return the substring between the specified prefix and postfix. Returns null if it doesn't match.



Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.