org.apache.cocoon.components.modules.input
Class ChainMetaModule

java.lang.Object
  extended byorg.apache.cocoon.util.AbstractLogEnabled
      extended byorg.apache.cocoon.components.modules.input.AbstractInputModule
          extended byorg.apache.cocoon.components.modules.input.AbstractMetaModule
              extended byorg.apache.cocoon.components.modules.input.ChainMetaModule
All Implemented Interfaces:
Configurable, Disposable, org.apache.cocoon.components.modules.input.InputModule, Serviceable, ThreadSafe

public class ChainMetaModule
extends org.apache.cocoon.components.modules.input.AbstractMetaModule
implements ThreadSafe

This modules allows to "chain" several other modules. If a module returns "null" as attribute value, the next module in the chain is queried until either a value can be obtained or the end of the chain is reached.

A typical example would be to "chain" request parameters, session attributes, and constants in this order. This way, an application could have a default skin that could be overridden by a user in her/his profile stored in the session. In addition, the user could request a different skin through passing a request parameter.

Usage:

Any number of <input-module/> blocks may appear in the component configuration. The @name attribute is used as the name of the requested input module. The complete <input-module/> block is passed at run-time to the module and thus can contain any configuration data for that particular module.

Configuration:

It can be controlled whether it returns a flat or a deep view, i.e. whether only values from the first module are returned if non-null or they are merged with values from other modules <all-values>true</all-values>. The same is possible for the attribute names (<all-names/>). In addition, empty strings could be treated the same as null values (<empty-as-null/>).

Version:
$Id: ChainMetaModule.html 1304280 2012-03-23 11:18:01Z ilgrosso $

Field Summary
 
Fields inherited from class org.apache.cocoon.components.modules.input.AbstractMetaModule
defaultInput, initialized, input, INPUT_MODULE_SELECTOR, inputConf, inputSelector, manager
 
Fields inherited from class org.apache.cocoon.components.modules.input.AbstractInputModule
settings
 
Fields inherited from interface org.apache.cocoon.components.modules.input.InputModule
ROLE
 
Constructor Summary
ChainMetaModule()
           
 
Method Summary
 void configure(Configuration config)
           
 void dispose()
           
 Object getAttribute(String attr, Configuration modeConf, Map objectModel)
           
 Iterator getAttributeNames(Configuration modeConf, Map objectModel)
           
 Object[] getAttributeValues(String attr, Configuration modeConf, Map objectModel)
           
 void lazy_initialize()
           
 
Methods inherited from class org.apache.cocoon.components.modules.input.AbstractMetaModule
getNames, getNames, getValue, getValue, getValue, getValue, getValues, getValues, getValues, getValues, obtainModule, releaseModule, service
 
Methods inherited from class org.apache.cocoon.util.AbstractLogEnabled
getLogger, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ChainMetaModule

public ChainMetaModule()
Method Detail

configure

public void configure(Configuration config)
               throws ConfigurationException
Specified by:
configure in interface Configurable
Throws:
ConfigurationException
See Also:
AbstractInputModule.configure(org.apache.avalon.framework.configuration.Configuration)

lazy_initialize

public void lazy_initialize()
See Also:
AbstractMetaModule.lazy_initialize()

dispose

public void dispose()
Specified by:
dispose in interface Disposable
See Also:
AbstractMetaModule.dispose()

getAttributeValues

public Object[] getAttributeValues(String attr,
                                   Configuration modeConf,
                                   Map objectModel)
                            throws ConfigurationException
Specified by:
getAttributeValues in interface org.apache.cocoon.components.modules.input.InputModule
Throws:
ConfigurationException
See Also:
AbstractInputModule.getAttributeValues(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)

getAttributeNames

public Iterator getAttributeNames(Configuration modeConf,
                                  Map objectModel)
                           throws ConfigurationException
Specified by:
getAttributeNames in interface org.apache.cocoon.components.modules.input.InputModule
Throws:
ConfigurationException
See Also:
AbstractInputModule.getAttributeNames(org.apache.avalon.framework.configuration.Configuration, java.util.Map)

getAttribute

public Object getAttribute(String attr,
                           Configuration modeConf,
                           Map objectModel)
                    throws ConfigurationException
Specified by:
getAttribute in interface org.apache.cocoon.components.modules.input.InputModule
Throws:
ConfigurationException


Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.