Class PropertyOwnerPointer
- java.lang.Object
-
- org.apache.commons.jxpath.ri.model.NodePointer
-
- org.apache.commons.jxpath.ri.model.beans.PropertyOwnerPointer
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Comparable
,Pointer
- Direct Known Subclasses:
BeanPointer
,DynaBeanPointer
,DynamicPointer
,NullPointer
public abstract class PropertyOwnerPointer extends NodePointer
A pointer describing a node that has properties, each of which could be a collection.- Version:
- $Revision: 652845 $ $Date: 2008-05-02 12:46:46 -0500 (Fri, 02 May 2008) $
- Author:
- Dmitri Plotnikov
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.Object
UNINITIALIZED
private java.lang.Object
value
-
Fields inherited from class org.apache.commons.jxpath.ri.model.NodePointer
index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PropertyOwnerPointer(NodePointer parent)
Create a new PropertyOwnerPointer.protected
PropertyOwnerPointer(NodePointer parent, java.util.Locale locale)
Create a new PropertyOwnerPointer.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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.NodeIterator
createNodeIterator(java.lang.String property, boolean reverse, NodePointer startWith)
Create a NodeIterator.java.lang.Object
getImmediateNode()
Returns the object the pointer points to; does not convert it to a "canonical" type.abstract QName
getName()
Returns the name of this node.abstract PropertyPointer
getPropertyPointer()
Get a PropertyPointer for this PropertyOwnerPointer.boolean
isDynamicPropertyDeclarationSupported()
Learn whether dynamic property declaration is supported.boolean
isValidProperty(QName name)
Learn whethername
is a valid child name for this PropertyOwnerPointer.void
remove()
If this is a root node pointer, throws an exception; otherwise forwards the call to the parent node.void
setIndex(int index)
Set the index of this NodePointer.void
setValue(java.lang.Object value)
Throws an exception if you try to change the root element, otherwise forwards the call to the parent pointer.-
Methods inherited from class org.apache.commons.jxpath.ri.model.NodePointer
asPath, clone, compareTo, createAttribute, createChild, createChild, createPath, createPath, escape, getAbstractFactory, getBaseValue, getDefaultNamespaceURI, getImmediateParentPointer, getImmediateValuePointer, getIndex, getLength, getLocale, getNamespaceResolver, getNamespaceURI, getNamespaceURI, getNode, getNodeSetByKey, getNodeValue, getParent, getPointerByID, getPointerByKey, getRootNode, getValue, getValuePointer, isActual, isAttribute, isCollection, isContainer, isDefaultNamespace, isLanguage, isLeaf, isNode, isRoot, namespaceIterator, namespacePointer, newChildNodePointer, newNodePointer, printPointerChain, setAttribute, setNamespaceResolver, testNode, toString
-
-
-
-
Constructor Detail
-
PropertyOwnerPointer
protected PropertyOwnerPointer(NodePointer parent, java.util.Locale locale)
Create a new PropertyOwnerPointer.- Parameters:
parent
- parent pointerlocale
- Locale
-
PropertyOwnerPointer
protected PropertyOwnerPointer(NodePointer parent)
Create a new PropertyOwnerPointer.- Parameters:
parent
- pointer
-
-
Method Detail
-
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 classNodePointer
- Parameters:
test
- NodeTest to filter childrenreverse
- specified iteration directionstartWith
- the NodePointer to start with- Returns:
- NodeIterator
-
createNodeIterator
public NodeIterator createNodeIterator(java.lang.String property, boolean reverse, NodePointer startWith)
Create a NodeIterator.- Parameters:
property
- property namereverse
- whether to iterate in reversestartWith
- first pointer to return- Returns:
- NodeIterator
-
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 classNodePointer
- Parameters:
name
- the attribute name to test- Returns:
- NodeIterator
-
setIndex
public void setIndex(int index)
Description copied from class:NodePointer
Set the index of this NodePointer.- Overrides:
setIndex
in classNodePointer
- Parameters:
index
- int
-
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.- Specified by:
getImmediateNode
in classNodePointer
- Returns:
- Object node
-
getName
public abstract QName getName()
Description copied from class:NodePointer
Returns the name of this node. Can be null.- Specified by:
getName
in classNodePointer
- Returns:
- QName
-
isValidProperty
public boolean isValidProperty(QName name)
Learn whethername
is a valid child name for this PropertyOwnerPointer.- Parameters:
name
- the QName to test- Returns:
true
ifQName
is a valid property name.- Since:
- JXPath 1.3
-
setValue
public void setValue(java.lang.Object value)
Throws an exception if you try to change the root element, otherwise forwards the call to the parent pointer.- Specified by:
setValue
in interfacePointer
- Specified by:
setValue
in classNodePointer
- Parameters:
value
- to set
-
remove
public void remove()
If this is a root node pointer, throws an exception; otherwise forwards the call to the parent node.- Overrides:
remove
in classNodePointer
-
getPropertyPointer
public abstract PropertyPointer getPropertyPointer()
Get a PropertyPointer for this PropertyOwnerPointer.- Returns:
- PropertyPointer
-
isDynamicPropertyDeclarationSupported
public boolean isDynamicPropertyDeclarationSupported()
Learn whether dynamic property declaration is supported.- Returns:
- true if the property owner can set a property "does not exist". A good example is a Map. You can always assign a value to any key even if it has never been "declared".
-
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.- Specified by:
compareChildNodePointers
in classNodePointer
- Parameters:
pointer1
- first pointer to be comparedpointer2
- second pointer to be compared- Returns:
- int per Java comparison conventions
-
-