Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.jxpath.ri.model.beans
Class CollectionPointer

    java.lang.Object
      |
      +--org.apache.commons.jxpath.ri.model.NodePointer
            |
            +--org.apache.commons.jxpath.ri.model.beans.CollectionPointer

All Implemented Interfaces:
  java.lang.Cloneable, java.lang.Comparable, Pointer, java.io.Serializable

Direct Known Subclasses:
  NullElementPointer

public class CollectionPointer
extends NodePointer

Transparent pointer to a collection (array or Collection).

Version:
  $Revision: 1.14 $ $Date: 2003/03/11 00:59:25 $
Author:
  Dmitri Plotnikov
See Also:
  Serialized Form

Fields inherited from class org.apache.commons.jxpath.ri.model.NodePointer
`index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION`

Constructor Summary
`CollectionPointer(NodePointer parent, java.lang.Object collection)`
`CollectionPointer(java.lang.Object collection, java.util.Locale locale)`

Method Summary
`java.lang.String` | `asPath()` Returns an XPath that maps to this Pointer.
`NodeIterator` | `attributeIterator(QName name)` Returns a NodeIterator that iterates over all attributes of the current node matching the supplied node name (could have a wildcard).
`NodeIterator` | `childIterator(NodeTest test, boolean reverse, NodePointer startWith)` Returns a NodeIterator that iterates over all children or all children that match the given NodeTest, starting with the specified one.
`int` | `compareChildNodePointers(NodePointer pointer1, NodePointer pointer2)` Compares two child NodePointers and returns a positive number, zero or a positive number according to the order of the pointers.
`NodePointer` | `createChild(JXPathContext context, QName name, int index)` Called by a child pointer when it needs to create a parent object for a non-existent collection element.
`NodePointer` | `createChild(JXPathContext context, QName name, int index, java.lang.Object value)` Called by a child pointer if that child needs to assign the value supplied in the createPath(context, value) call to a non-existent node.
`NodePointer` | `createPath(JXPathContext context)` Called by a child pointer when it needs to create a parent object.
`NodePointer` | `createPath(JXPathContext context, java.lang.Object value)` Called directly by JXPathContext.
`boolean` | `equals(java.lang.Object object)`
`java.lang.Object` | `getBaseValue()` Returns the value represented by the pointer before indexing.
`java.lang.Object` | `getImmediateNode()` Returns the object the pointer points to; does not convert it to a "canonical" type.
`int` | `getLength()` If the pointer represents a collection (or collection element), returns the length of the collection.
`QName` | `getName()` Returns the name of this node.
`NodePointer` | `getValuePointer()` If this pointer manages a transparent container, like a variable, this method returns the pointer to the contents.
`int` | `hashCode()`
`boolean` | `isCollection()` Returns `true` if the value of the pointer is an array or a Collection.
`boolean` | `isContainer()` If true, this node is axiliary and can only be used as an intermediate in the chain of pointers.
`boolean` | `isLeaf()` If true, this node does not have children
`NodeIterator` | `namespaceIterator()` Returns a NodeIterator that iterates over all namespaces of the value currently pointed at.
`NodePointer` | `namespacePointer(java.lang.String namespace)` Returns a NodePointer for the specified namespace.
`void` | `setIndex(int index)`
`void` | `setValue(java.lang.Object value)` Converts the value to the required type and changes the corresponding object to that value.
`boolean` | `testNode(NodeTest nodeTest)` Checks if this Pointer matches the supplied NodeTest.

Methods inherited from class org.apache.commons.jxpath.ri.model.NodePointer
`clone, compareTo, createAttribute, getDefaultNamespaceURI, getExpandedName, getImmediateValuePointer, getIndex, getLocale, getNamespaceURI, getNamespaceURI, getNode, getNodeValue, getParent, getPointerByID, getPointerByKey, getRootNode, getValue, isActual, isAttribute, isDefaultNamespace, isLanguage, isNode, isRoot, newChildNodePointer, newNodePointer, printPointerChain, remove, setAttribute, toString`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### CollectionPointer

    public CollectionPointer(java.lang.Object collection,
                             java.util.Locale locale)

### CollectionPointer

    public CollectionPointer(NodePointer parent,
                             java.lang.Object collection)

Method Detail

### getName

    public QName getName()

  Description copied from class: `NodePointer`
  Returns the name of this node. Can be null.
  Overrides:
    `getName` in class `NodePointer`

### getBaseValue

    public java.lang.Object getBaseValue()

  Description copied from class: `NodePointer`
  Returns the value represented by the pointer before indexing. So, if the node represents an element of a collection, this method returns the collection itself.
  Overrides:
    `getBaseValue` in class `NodePointer`

### isCollection

    public boolean isCollection()

  Description copied from class: `NodePointer`
  Returns `true` if the value of the pointer is an array or a Collection.
  Overrides:
    `isCollection` in class `NodePointer`

### getLength

    public int getLength()

  Description copied from class: `NodePointer`
  If the pointer represents a collection (or collection element), returns the length of the collection. Otherwise returns 1 (even if the value is null).
  Overrides:
    `getLength` in class `NodePointer`

### isLeaf

    public boolean isLeaf()

  Description copied from class: `NodePointer`
  If true, this node does not have children
  Overrides:
    `isLeaf` in class `NodePointer`

### isContainer

    public boolean isContainer()

  Description copied from class: `NodePointer`
  If true, this node is axiliary and can only be used as an intermediate in the chain of pointers.
  Overrides:
    `isContainer` in class `NodePointer`

### getImmediateNode

    public java.lang.Object getImmediateNode()

  Description copied from class: `NodePointer`
  Returns the object the pointer points to; does not convert it to a "canonical" type.
  Overrides:
    `getImmediateNode` in class `NodePointer`

### setValue

    public void setValue(java.lang.Object value)

  Description copied from class: `NodePointer`
  Converts the value to the required type and changes the corresponding object to that value.
  Overrides:
    `setValue` in class `NodePointer`

### setIndex

    public void setIndex(int index)

  Overrides:
    `setIndex` in class `NodePointer`

### getValuePointer

    public NodePointer getValuePointer()

  Description copied from class: `NodePointer`
  If this pointer manages a transparent container, like a variable, this method returns the pointer to the contents. Only an auxiliary (non-node) pointer can (and should) return a value pointer other than itself. Note that you probably don't want to override `getValuePointer()` directly. Override the `getImmediateValuePointer()` method instead. The `getValuePointer()` method is calls `getImmediateValuePointer()` and, if the result is not `this`, invokes `getValuePointer()` recursively. The idea here is to open all nested containers. Let's say we have a container within a container within a container. The `getValuePointer()` method should then open all those containers and return the pointer to the ultimate contents. It does so with the above recursion.
  Overrides:
    `getValuePointer` in class `NodePointer`

### createPath

    public NodePointer createPath(JXPathContext context)

  Description copied from class: `NodePointer`
  Called by a child pointer when it needs to create a parent object. Must create an object described by this pointer and return a new pointer that properly describes the new object.
  Overrides:
    `createPath` in class `NodePointer`

### createPath

    public NodePointer createPath(JXPathContext context,
                                  java.lang.Object value)

  Description copied from class: `NodePointer`
  Called directly by JXPathContext. Must create path and set value.
  Overrides:
    `createPath` in class `NodePointer`

### createChild

    public NodePointer createChild(JXPathContext context,
                                   QName name,
                                   int index,
                                   java.lang.Object value)

  Description copied from class: `NodePointer`
  Called by a child pointer if that child needs to assign the value supplied in the createPath(context, value) call to a non-existent node. This method may have to expand the collection in order to assign the element.
  Overrides:
    `createChild` in class `NodePointer`

### createChild

    public NodePointer createChild(JXPathContext context,
                                   QName name,
                                   int index)

  Description copied from class: `NodePointer`
  Called by a child pointer when it needs to create a parent object for a non-existent collection element. It may have to expand the collection, then create an element object and return a new pointer describing the newly created element.
  Overrides:
    `createChild` in class `NodePointer`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### equals

    public boolean equals(java.lang.Object object)

  Overrides:
    `equals` in class `java.lang.Object`

### childIterator

    public NodeIterator childIterator(NodeTest test,
                                      boolean reverse,
                                      NodePointer startWith)

  Description copied from class: `NodePointer`
  Returns a NodeIterator that iterates over all children or all children that match the given NodeTest, starting with the specified one.
  Overrides:
    `childIterator` in class `NodePointer`

### attributeIterator

    public NodeIterator attributeIterator(QName name)

  Description copied from class: `NodePointer`
  Returns a NodeIterator that iterates over all attributes of the current node matching the supplied node name (could have a wildcard). May return null if the object does not support the attributes.
  Overrides:
    `attributeIterator` in class `NodePointer`

### namespaceIterator

    public NodeIterator namespaceIterator()

  Description copied from class: `NodePointer`
  Returns a NodeIterator that iterates over all namespaces of the value currently pointed at. May return null if the object does not support the namespaces.
  Overrides:
    `namespaceIterator` in class `NodePointer`

### namespacePointer

    public NodePointer namespacePointer(java.lang.String namespace)

  Description copied from class: `NodePointer`
  Returns a NodePointer for the specified namespace. Will return null if namespaces are not supported. Will return UNKNOWN_NAMESPACE if there is no such namespace.
  Overrides:
    `namespacePointer` in class `NodePointer`

### testNode

    public boolean testNode(NodeTest nodeTest)

  Description copied from class: `NodePointer`
  Checks if this Pointer matches the supplied NodeTest.
  Overrides:
    `testNode` in class `NodePointer`

### compareChildNodePointers

    public int compareChildNodePointers(NodePointer pointer1,
                                        NodePointer pointer2)

  Description copied from class: `NodePointer`
  Compares two child NodePointers and returns a positive number, zero or a positive number according to the order of the pointers.
  Overrides:
    `compareChildNodePointers` in class `NodePointer`

### asPath

    public java.lang.String asPath()

  Returns an XPath that maps to this Pointer.
  Overrides:
    `asPath` in class `NodePointer`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2003 Apache Software Foundation. All Rights Reserved.