Class ConfigurationNodePointerFactory

java.lang.Object
org.apache.commons.configuration2.tree.xpath.ConfigurationNodePointerFactory
All Implemented Interfaces:
org.apache.commons.jxpath.ri.model.NodePointerFactory

public class ConfigurationNodePointerFactory extends Object implements org.apache.commons.jxpath.ri.model.NodePointerFactory

Implementation of the NodePointerFactory interface for configuration nodes.

This class is able to create NodePointers for the nodes of hierarchical configurations. Because there is no common base class for configuration nodes (any specific configuration implementation can use its own node class) a trick is needed for activating this factory for a concrete JXPath query: The wrapNode() method has to be called with the node object and its corresponding NodeHandler. This creates a wrapper object containing all information required by the factory for processing a query. Then this wrapper object has to be passed to the query methods of the JXPath context.

Since:
1.3
  • Field Details

  • Constructor Details

  • Method Details

    • getOrder

      public int getOrder()
      Gets the order of this factory between other factories.
      Specified by:
      getOrder in interface org.apache.commons.jxpath.ri.model.NodePointerFactory
      Returns:
      this order's factory
    • createNodePointer

      public org.apache.commons.jxpath.ri.model.NodePointer createNodePointer(org.apache.commons.jxpath.ri.QName name, Object bean, Locale locale)
      Creates a node pointer for the specified bean. If the bean is a configuration node (indicated by a wrapper object), a corresponding pointer is returned.
      Specified by:
      createNodePointer in interface org.apache.commons.jxpath.ri.model.NodePointerFactory
      Parameters:
      name - the name of the node
      bean - the bean
      locale - the locale
      Returns:
      a pointer for a configuration node if the bean is such a node
    • createNodePointer

      public org.apache.commons.jxpath.ri.model.NodePointer createNodePointer(org.apache.commons.jxpath.ri.model.NodePointer parent, org.apache.commons.jxpath.ri.QName name, Object bean)
      Creates a node pointer for the specified bean. If the bean is a configuration node, a corresponding pointer is returned.
      Specified by:
      createNodePointer in interface org.apache.commons.jxpath.ri.model.NodePointerFactory
      Parameters:
      parent - the parent node
      name - the name
      bean - the bean
      Returns:
      a pointer for a configuration node if the bean is such a node
    • wrapNode

      public static <T> Object wrapNode(T node, NodeHandler<T> handler)
      Creates a node wrapper for the specified node and its handler. This wrapper has to be passed to the JXPath context instead of the original node.
      Type Parameters:
      T - the type of the node
      Parameters:
      node - the node
      handler - the corresponding node handler
      Returns:
      a wrapper for this node