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

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.JXPathMetaModule
All Implemented Interfaces:
Configurable, Disposable, org.apache.cocoon.components.modules.input.InputModule, Serviceable, ThreadSafe

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

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: This is based on the AbstractJXPathModule and duplicates the code since multiple inheritance is not possible. Please keep both classes in sync.

Configuration example:

<lenient>false</lenient> When set to true, non-existing attributes return null, when set to false, an exception is thrown. Default is true.
<parameter>false</parameter> Attribute name to be used instead of passed attribute name.
<from-parameter>false</from-parameter> Attribute name to pass to configured input module
<input-module name="request-attr"/> Uses the "request-attr" input module to obtain a value and applies the given JXPath expression to it.
<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.

In addition, it accepts the attributes "parameter" to override the attribute name and "from-parameter" to pass as attribute name to the configured input module.

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

Field Summary
protected  org.apache.cocoon.components.modules.input.JXPathHelperConfiguration configuration
          Contains all globally registered extension classes and packages.
protected  String parameter
          Overrides attribute name
 
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
JXPathMetaModule()
           
 
Method Summary
 void configure(Configuration config)
           
 Object getAttribute(String name, Configuration modeConf, Map objectModel)
           
 Iterator getAttributeNames(Configuration modeConf, Map objectModel)
           
 Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel)
           
protected  Object getContextObject(Configuration modeConf, Map objectModel)
          Looks up object from configured InputModule.
 
Methods inherited from class org.apache.cocoon.components.modules.input.AbstractMetaModule
dispose, getNames, getNames, getValue, getValue, getValue, getValue, getValues, getValues, getValues, getValues, lazy_initialize, 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
 

Field Detail

configuration

protected org.apache.cocoon.components.modules.input.JXPathHelperConfiguration configuration
Contains all globally registered extension classes and packages. Thus the lookup and loading of globally registered extensions is done only once.


parameter

protected String parameter
Overrides attribute name

Constructor Detail

JXPathMetaModule

public JXPathMetaModule()
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)

getAttribute

public Object getAttribute(String name,
                           Configuration modeConf,
                           Map objectModel)
                    throws ConfigurationException
Specified by:
getAttribute in interface org.apache.cocoon.components.modules.input.InputModule
Throws:
ConfigurationException
See Also:
AbstractInputModule.getAttribute(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)

getAttributeValues

public Object[] getAttributeValues(String name,
                                   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)

getContextObject

protected Object getContextObject(Configuration modeConf,
                                  Map objectModel)
                           throws ConfigurationException
Looks up object from configured InputModule.

Parameters:
modeConf - a Configuration value
objectModel - a Map value
Returns:
an Object value
Throws:
ConfigurationException - from called components.


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