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
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) $
- See Also:
-
Field Summary
FieldsFields inherited from class org.apache.commons.jxpath.ri.model.NodePointer
index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION -
Constructor Summary
ConstructorsConstructorDescriptionNullElementPointer(NodePointer parent, int index) Create a new NullElementPointer. -
Method Summary
Modifier and TypeMethodDescriptionasPath()Returns an XPath that maps to this Pointer.createPath(JXPathContext context) Called by a child pointer when it needs to create a parent object.createPath(JXPathContext context, Object value) Called directly by JXPathContext.booleanReturns the value represented by the pointer before indexing.Returns the object the pointer points to; does not convert it to a "canonical" type.intIf the pointer represents a collection (or collection element), returns the length of the collection.getName()Returns the name of this node.Get the property pointer for this.If this pointer manages a transparent container, like a variable, this method returns the pointer to the contents.inthashCode()booleanisActual()An actual pointer points to an existing part of an object graph, even if it is null.booleanReturnstrueif the value of the pointer is an array or a Collection.booleanIf true, this node is auxiliary and can only be used as an intermediate in the chain of pointers.booleanisLeaf()If true, this node does not have childrenvoidConverts 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, testNodeMethods 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
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
-
Constructor Details
-
NullElementPointer
Create a new NullElementPointer.- Parameters:
parent- parent pointerindex- int
-
-
Method Details
-
getName
Description copied from class:NodePointerReturns the name of this node. Can be null.- Overrides:
getNamein classCollectionPointer- Returns:
- QName
-
getBaseValue
Description copied from class:NodePointerReturns 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:
getBaseValuein classCollectionPointer- Returns:
- Object value
-
getImmediateNode
Description copied from class:NodePointerReturns the object the pointer points to; does not convert it to a "canonical" type.- Overrides:
getImmediateNodein classCollectionPointer- Returns:
- Object node
-
isLeaf
public boolean isLeaf()Description copied from class:NodePointerIf true, this node does not have children- Overrides:
isLeafin classCollectionPointer- Returns:
- boolean
-
isCollection
public boolean isCollection()Description copied from class:NodePointerReturnstrueif the value of the pointer is an array or a Collection.- Overrides:
isCollectionin classCollectionPointer- Returns:
- boolean
-
getPropertyPointer
Get the property pointer for this.- Returns:
- PropertyPointer
-
getValuePointer
Description copied from class:NodePointerIf 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 overridegetValuePointer()directly. Override thegetImmediateValuePointer()method instead. ThegetValuePointer()method is callsgetImmediateValuePointer()and, if the result is notthis, invokesgetValuePointer()recursively. The idea here is to open all nested containers. Let's say we have a container within a container within a container. ThegetValuePointer()method should then open all those containers and return the pointer to the ultimate contents. It does so with the above recursion.- Overrides:
getValuePointerin classCollectionPointer- Returns:
- NodePointer
-
setValue
Description copied from class:NodePointerConverts the value to the required type and changes the corresponding object to that value.- Specified by:
setValuein interfacePointer- Overrides:
setValuein classCollectionPointer- Parameters:
value- the value to set
-
isActual
public boolean isActual()Description copied from class:NodePointerAn 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:
isActualin classNodePointer- Returns:
- boolean
-
isContainer
public boolean isContainer()Description copied from class:NodePointerIf true, this node is auxiliary and can only be used as an intermediate in the chain of pointers.- Overrides:
isContainerin classCollectionPointer- Returns:
- boolean
-
createPath
Description copied from class:NodePointerCalled 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:
createPathin classCollectionPointer- Parameters:
context- the owning JXPathContext- Returns:
- created NodePointer
-
createPath
Description copied from class:NodePointerCalled directly by JXPathContext. Must create path and set value.- Overrides:
createPathin classCollectionPointer- Parameters:
context- the owning JXPathContextvalue- the new value to set- Returns:
- created NodePointer
-
hashCode
public int hashCode()- Overrides:
hashCodein classCollectionPointer
-
equals
- Overrides:
equalsin classCollectionPointer
-
getLength
public int getLength()Description copied from class:NodePointerIf the pointer represents a collection (or collection element), returns the length of the collection. Otherwise returns 1 (even if the value is null).- Overrides:
getLengthin classCollectionPointer- Returns:
- int
-
asPath
Description copied from class:NodePointerReturns an XPath that maps to this Pointer.- Specified by:
asPathin interfacePointer- Overrides:
asPathin classCollectionPointer- Returns:
- String xpath expression
-