org.apache.cocoon.components.modules.input
abstract public class: AbstractJXPathModule [javadoc |
source]
java.lang.Object
org.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.cocoon.components.modules.input.AbstractInputModule
org.apache.cocoon.components.modules.input.AbstractJXPathModule
All Implemented Interfaces:
org.apache.avalon.framework.activity.Disposable, InputModule, org.apache.avalon.framework.configuration.Configurable
Direct Known Subclasses:
FlowAttributeModule, SessionModule, PropertiesFileModule, RequestModule, SystemPropertyModule, XMLFileModule, FlowContinuationModule
JXPathModule allows to access properties of any object in generic
way. JXPath provides APIs for the traversal of graphs of
JavaBeans, DOM and other types of objects using the XPath
syntax.
Note: JXPathMetaModule is based on this class
and duplicates the code since multiple inheritance is not possible.
Please keep both classes in sync.
Configuration
<lenient>false</lenient> |
When set to true, non-existing attributes return null; when set to false,
an exception is thrown. Default is true. |
<parameter>foo</parameter> |
When set overrides attribute name passed to module. |
<function name="java.lang.String" prefix="str"/> |
Imports the class "String" as extension class to the JXPathContext using
the prefix "str". Thus "str:length(xpath)" would apply the method "length" to
the string object obtained from the xpath expression. Please note that the class
needs to be fully qualified. |
<package name="java.util" prefix="util"/> |
Imports all classes in the package "java.util" as extension classes to the
JXPathContext using the prefix "util". Thus "util:Date.new()" would create a
new java.util.Date object. |
<namespace uri="uri:foo" prefix="bar"/> |
Registers the namespace identified by URI uri:foo
with the JXPathContext using the prefix bar. Thus
expressions can query XML with nodes in this namespace using
registered prefix. |
- author:
< - a href="mailto:kpiroumian@apache.org">Konstantin Piroumian
- author:
< - a href="mailto:haul@apache.org">Christian Haul
- author:
< - a href="mailto:vgritsenko@apache.org">Vadim Gritsenko
- version:
$ - Id: AbstractJXPathModule.java 607115 2007-12-27 20:00:45Z rgoers $
| Field Summary |
|---|
| protected JXPathHelperConfiguration | configuration | Contains all globally registered extension classes and
packages. Thus the lookup and loading of globally registered
extensions is done only once. |
| protected String | parameter | Overrides attribute name |
| Method from org.apache.cocoon.components.modules.input.AbstractJXPathModule Detail: |
public void configure(Configuration config) throws ConfigurationException {
this.configuration = JXPathHelper.setup(config);
}
Configure component. Preprocess list of packages and functions
to add to JXPath context later. |
public Object getAttribute(String name,
Configuration modeConf,
Map objectModel) throws ConfigurationException {
Object contextObj = getContextObject(modeConf, objectModel);
if (modeConf != null) {
name = modeConf.getChild("parameter").getValue(this.parameter != null ? this.parameter : name);
}
return JXPathHelper.getAttributeValue(name, modeConf, this.configuration, contextObj);
}
|
public Iterator getAttributeNames(Configuration modeConf,
Map objectModel) throws ConfigurationException {
Object contextObj = getContextObject(modeConf, objectModel);
return JXPathHelper.getAttributeNames(this.configuration, contextObj);
}
|
public Object[] getAttributeValues(String name,
Configuration modeConf,
Map objectModel) throws ConfigurationException {
Object contextObj = getContextObject(modeConf, objectModel);
if (modeConf != null) {
name = modeConf.getChild("parameter").getValue(this.parameter != null ? this.parameter : name);
}
return JXPathHelper.getAttributeValues(name, modeConf, this.configuration, contextObj);
}
|
abstract protected Object getContextObject(Configuration modeConf,
Map objectModel) throws ConfigurationException
Returns the object which should be used as JXPath context.
Descendants should override this method to return a specific object
that is requried by the implementing class.
Examples are: request, session and application context objects. |