|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.avalon.framework.logger.AbstractLogEnabled org.apache.cocoon.components.modules.input.AbstractInputModule org.apache.cocoon.components.modules.input.AbstractMetaModule org.apache.cocoon.components.modules.input.ChainMetaModule
public class ChainMetaModule
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/>
).
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)
Configures the database access helper. |
void |
dispose()
Dispose exactly one cached InputModule. |
Object |
getAttribute(String attr,
Configuration modeConf,
Map objectModel)
Standard access to an attribute's value. |
Iterator |
getAttributeNames(Configuration modeConf,
Map objectModel)
Returns an Iterator of String objects containing the names of the attributes available. |
Object[] |
getAttributeValues(String attr,
Configuration modeConf,
Map objectModel)
Returns an array of String objects containing all of the values the given attribute has, or null if the attribute does not exist. |
void |
lazy_initialize()
Initialize the meta module with exactly one other input module. |
Methods inherited from class org.apache.cocoon.components.modules.input.AbstractMetaModule |
---|
compose, getNames, getNames, getValue, getValue, getValue, getValue, getValues, getValues, getValues, getValues, obtainModule, releaseModule |
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 |
---|
public ChainMetaModule()
Method Detail |
---|
public void configure(Configuration config) throws ConfigurationException
AbstractInputModule
settings
. Nested
configuration option are not catered for. This way global
configuration options can be used.
For nested configurations override this function.
configure
in interface Configurable
configure
in class AbstractInputModule
ConfigurationException
public void lazy_initialize()
AbstractMetaModule
lazy_initialize
in class AbstractMetaModule
public void dispose()
AbstractMetaModule
dispose
in interface Disposable
dispose
in class AbstractMetaModule
public Object[] getAttributeValues(String attr, Configuration modeConf, Map objectModel) throws ConfigurationException
InputModule
InputModule.getAttributeNames(Configuration, Map)
together with
InputModule.getAttribute(String, Configuration, Map)
can be used to get the
values one by one.
getAttributeValues
in interface InputModule
getAttributeValues
in class AbstractInputModule
attr
- a String that specifies what the caller thinks
would identify an attributes. This is mainly a fallback
if no modeConf is present.modeConf
- column's mode configuration from resource
description. This argument is optional.
ConfigurationException
public Iterator getAttributeNames(Configuration modeConf, Map objectModel) throws ConfigurationException
InputModule
getAttributeNames
in interface InputModule
getAttributeNames
in class AbstractInputModule
modeConf
- column's mode configuration from resource
description. This argument is optional.
ConfigurationException
public Object getAttribute(String attr, Configuration modeConf, Map objectModel) throws ConfigurationException
InputModule
InputModule.getAttributeValues(String, Configuration, Map)
or
InputModule.getAttributeNames(Configuration, Map)
and
InputModule.getAttribute(String, Configuration, Map)
to get them one by one.
getAttribute
in interface InputModule
getAttribute
in class AbstractInputModule
attr
- a String that specifies what the caller thinks
would identify an attribute. This is mainly a fallback if no
modeConf is present.modeConf
- column's mode configuration from resource
description. This argument is optional.
ConfigurationException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |