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

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

    java.lang.Object
      org.apache.commons.jxpath.ri.model.NodePointer
          org.apache.commons.jxpath.ri.model.beans.CollectionPointer
              org.apache.commons.jxpath.ri.model.beans.NullElementPointer

All Implemented Interfaces:
  Serializable, Cloneable, Comparable, Pointer

    public class NullElementPointer

extends CollectionPointer

Used when there is a need to construct a Pointer for a collection element that does not exist. For example, if the path is "foo[3]", but the collection "foo" only has one element or is empty or is null, the NullElementPointer can be used to capture this situation without putting a regular NodePointer into an invalid state. Just create a NullElementPointer with index 2 (= 3 - 1) and a "foo" pointer as the parent.

Version:
  $Revision: 652884 $ $Date: 2008-05-02 15:02:00 -0500 (Fri, 02 May 2008) $
Author:
  Dmitri Plotnikov
See Also:
  Serialized Form

Field Summary

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

Constructor Summary
`NullElementPointer(NodePointer parent, int index)` Create a new NullElementPointer.

Method Summary
`String` | `asPath()` Returns an XPath that maps to this Pointer.
`NodePointer` | `createPath(JXPathContext context)` Called by a child pointer when it needs to create a parent object.
`NodePointer` | `createPath(JXPathContext context, Object value)` Called directly by JXPathContext.
`boolean` | `equals(Object object)`
`Object` | `getBaseValue()` Returns the value represented by the pointer before indexing.
`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.
`PropertyPointer` | `getPropertyPointer()` Get the property pointer for this.
`NodePointer` | `getValuePointer()` If this pointer manages a transparent container, like a variable, this method returns the pointer to the contents.
`int` | `hashCode()`
`boolean` | `isActual()` An actual pointer points to an existing part of an object graph, even if it is null.
`boolean` | `isCollection()` Returns `true` if the value of the pointer is an array or a Collection.
`boolean` | `isContainer()` If true, this node is auxiliary and can only be used as an intermediate in the chain of pointers.
`boolean` | `isLeaf()` If true, this node does not have children
`void` | `setValue(Object value)` Converts the value to the required type and changes the corresponding object to that value.

Methods inherited from class org.apache.commons.jxpath.ri.model.beans.CollectionPointer
`attributeIterator, childIterator, compareChildNodePointers, createChild, createChild, namespaceIterator, namespacePointer, setIndex, testNode`

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

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

Constructor Detail

### NullElementPointer

    public NullElementPointer(NodePointer parent,
                              int index)

  Create a new NullElementPointer.

  Parameters:
    `parent` - parent pointer
    `index` - int

Method Detail

### getName

    public QName getName()

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

  Overrides:
    `getName` in class `CollectionPointer`
  Returns:
    QName

### getBaseValue

    public 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 `CollectionPointer`
  Returns:
    Object value

### getImmediateNode

    public 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 `CollectionPointer`
  Returns:
    Object node

### isLeaf

    public boolean isLeaf()

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

  Overrides:
    `isLeaf` in class `CollectionPointer`
  Returns:
    boolean

### 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 `CollectionPointer`
  Returns:
    boolean

### getPropertyPointer

    public PropertyPointer getPropertyPointer()

  Get the property pointer for this.

  Returns:
    PropertyPointer

### 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 `CollectionPointer`
  Returns:
    NodePointer

### setValue

    public void setValue(Object value)

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

  Specified by:
    `setValue` in interface `Pointer`
  Overrides:
    `setValue` in class `CollectionPointer`
  Parameters:
    `value` - the value to set

### isActual

    public boolean isActual()

  Description copied from class: `NodePointer`
  An actual pointer points to an existing part of an object graph, even if it is null. A non-actual pointer represents a part that does not exist at all. For instance consider the pointer "/address/street". If both address and street are not null, the pointer is actual. If address is not null, but street is null, the pointer is still actual. If address is null, the pointer is not actual. (In JavaBeans) if address is not a property of the root bean, a Pointer for this path cannot be obtained at all - actual or otherwise.

  Overrides:
    `isActual` in class `NodePointer`
  Returns:
    boolean

### isContainer

    public boolean isContainer()

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

  Overrides:
    `isContainer` in class `CollectionPointer`
  Returns:
    boolean

### 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 `CollectionPointer`
  Parameters:
    `context` - the owning JXPathContext
  Returns:
    created NodePointer

### createPath

    public NodePointer createPath(JXPathContext context,
                                  Object value)

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

  Overrides:
    `createPath` in class `CollectionPointer`
  Parameters:
    `context` - the owning JXPathContext
    `value` - the new value to set
  Returns:
    created NodePointer

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `CollectionPointer`

### equals

    public boolean equals(Object object)

  Overrides:
    `equals` in class `CollectionPointer`

### 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 `CollectionPointer`
  Returns:
    int

### asPath

    public String asPath()

  Description copied from class: `NodePointer`
  Returns an XPath that maps to this Pointer.

  Specified by:
    `asPath` in interface `Pointer`
  Overrides:
    `asPath` in class `CollectionPointer`
  Returns:
    String xpath expression

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

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