org.apache.commons.jxpath.ri.model.beans
Class PropertyPointer

java.lang.Object
  |
  +--org.apache.commons.jxpath.ri.model.NodePointer
        |
        +--org.apache.commons.jxpath.ri.model.beans.PropertyPointer
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable, Pointer, java.io.Serializable
Direct Known Subclasses:
BeanPropertyPointer, DynaBeanPropertyPointer, DynamicPropertyPointer, NullPropertyPointer

public abstract class PropertyPointer
extends NodePointer

A pointer allocated by a PropertyOwnerPointer to represent the value of a property of the parent object.

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

Field Summary
protected  java.lang.Object bean
           
protected  int propertyIndex
           
static int UNSPECIFIED_PROPERTY
           
 
Fields inherited from class org.apache.commons.jxpath.ri.model.NodePointer
index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION
 
Constructor Summary
PropertyPointer(NodePointer parent)
          Takes a javabean, a descriptor of a property of that object and an offset within that property (starting with 0).
 
Method Summary
 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 getBean()
           
 java.lang.Object getImmediateNode()
          Returns the object the pointer points to; does not convert it to a "canonical" type.
 NodePointer getImmediateValuePointer()
          Returns a NodePointer that can be used to access the currently selected property value.
 int getLength()
          If the property contains a collection, then the length of that collection, otherwise - 1.
 QName getName()
          Returns the name of this node.
abstract  int getPropertyCount()
           
 int getPropertyIndex()
           
abstract  java.lang.String getPropertyName()
           
abstract  java.lang.String[] getPropertyNames()
           
 int hashCode()
           
 boolean isActual()
          An actual pointer points to an existing part of an object graph, even if it is null.
protected abstract  boolean isActualProperty()
           
 boolean isCollection()
          Returns true if the value of the pointer is an array or a Collection.
 boolean isLeaf()
          If true, this node does not have children
 void setPropertyIndex(int index)
           
abstract  void setPropertyName(java.lang.String propertyName)
           
 
Methods inherited from class org.apache.commons.jxpath.ri.model.NodePointer
asPath, attributeIterator, childIterator, clone, compareTo, createAttribute, getBaseValue, getDefaultNamespaceURI, getExpandedName, getIndex, getLocale, getNamespaceURI, getNamespaceURI, getNode, getNodeValue, getParent, getPointerByID, getPointerByKey, getRootNode, getValue, getValuePointer, isAttribute, isContainer, isDefaultNamespace, isLanguage, isNode, isRoot, namespaceIterator, namespacePointer, newChildNodePointer, newNodePointer, printPointerChain, remove, setAttribute, setIndex, setValue, testNode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

UNSPECIFIED_PROPERTY

public static final int UNSPECIFIED_PROPERTY

propertyIndex

protected int propertyIndex

bean

protected java.lang.Object bean
Constructor Detail

PropertyPointer

public PropertyPointer(NodePointer parent)
Takes a javabean, a descriptor of a property of that object and an offset within that property (starting with 0).
Method Detail

getPropertyIndex

public int getPropertyIndex()

setPropertyIndex

public void setPropertyIndex(int index)

getBean

public java.lang.Object getBean()

getName

public QName getName()
Description copied from class: NodePointer
Returns the name of this node. Can be null.
Overrides:
getName in class NodePointer

getPropertyName

public abstract java.lang.String getPropertyName()

setPropertyName

public abstract void setPropertyName(java.lang.String propertyName)

getPropertyCount

public abstract int getPropertyCount()

getPropertyNames

public abstract java.lang.String[] getPropertyNames()

isActualProperty

protected abstract boolean isActualProperty()

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

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

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

isLeaf

public boolean isLeaf()
Description copied from class: NodePointer
If true, this node does not have children
Overrides:
isLeaf in class NodePointer

getLength

public int getLength()
If the property contains a collection, then the length of that collection, otherwise - 1.
Overrides:
getLength in class NodePointer

getImmediateValuePointer

public NodePointer getImmediateValuePointer()
Returns a NodePointer that can be used to access the currently selected property value.
Overrides:
getImmediateValuePointer in class NodePointer
Following copied from class: org.apache.commons.jxpath.ri.model.NodePointer
Returns:
NodePointer is either this or a pointer for the immediately contained value.
See Also:
NodePointer.getValuePointer()

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

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


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