org.apache.cocoon.acting
Class InputModuleAction

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.ConfigurableServiceableAction
                  extended by org.apache.cocoon.acting.InputModuleAction
All Implemented Interfaces:
Component, Configurable, LogEnabled, Serviceable, ThreadSafe, Action

public class InputModuleAction
extends ConfigurableServiceableAction
implements ThreadSafe

Simple helper action to allow passing sitemap variables to InputModules. Sitemap evaluation of input modules using the curly bracket syntax e.g. {defaults:skin} suffers from the fact that it is not possible to use a sitemap variable as part of the invocation like {defaults:{1})}. This action takes three parameters, the name of the input module, the attribute name, and whether to call getAttribute() or getAttributeValues(). Thus the above becomes

   <map:act type="inputmodule">
     <map:parameter name="module" value="defaults"/>
     <map:parameter name="attribute" value="{1}"/>
     <map:parameter name="single-value" value="false"/>
 
     <!-- do something with the result: "{1}" -->
 
   </map:act>
 
The action invokes the getAttributeValues() method and returns all results numbered from "0". If no result exists, "null" is returned and the nested block is skipped. The name of the input module to use may be preconfigured when declaring the action in your sitemap:
     <map:action name="inputmodule" 
                    src="org.apache.cocoon.acting.InputModuleAction" 
                    logger="sitemap.action.inputmodule">
        <module>defaults</module>
        <single-value>false</single-value>
     </map:action>
 

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

Field Summary
 
Fields inherited from class org.apache.cocoon.acting.ConfigurableServiceableAction
manager
 
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
InputModuleAction()
           
 
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.
 void configure(Configuration conf)
          Configures the Action.
 
Methods inherited from class org.apache.cocoon.acting.ConfigurableServiceableAction
service
 
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

InputModuleAction

public InputModuleAction()
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.

Specified by:
act in interface Action
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

configure

public void configure(Configuration conf)
               throws ConfigurationException
Description copied from class: AbstractConfigurableAction
Configures the Action. Takes the children from the Configuration and stores them them as key (configuration name) and value (configuration value) in settings.
This automates parsing of flat string-only configurations. For nested configurations, override this function in your action.

Specified by:
configure in interface Configurable
Overrides:
configure in class AbstractConfigurableAction
Throws:
ConfigurationException


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