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

java.lang.Object
  extended by org.apache.commons.jxpath.ri.model.NodePointer
      extended by org.apache.commons.jxpath.ri.model.beans.PropertyOwnerPointer
All Implemented Interfaces:
Serializable, Cloneable, 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 inherited from class org.apache.commons.jxpath.ri.model.NodePointer
index, locale, parent, UNKNOWN_NAMESPACE, WHOLE_COLLECTION
 
Constructor Summary
protected PropertyOwnerPointer(NodePointer parent)
          Create a new PropertyOwnerPointer.
protected PropertyOwnerPointer(NodePointer parent, Locale locale)
          Create a new PropertyOwnerPointer.
 
Method Summary
 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(String property, boolean reverse, NodePointer startWith)
          Create a NodeIterator.
 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 whether name 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(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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PropertyOwnerPointer

protected PropertyOwnerPointer(NodePointer parent,
                               Locale locale)
Create a new PropertyOwnerPointer.

Parameters:
parent - parent pointer
locale - 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 class NodePointer
Parameters:
test - NodeTest to filter children
reverse - specified iteration direction
startWith - the NodePointer to start with
Returns:
NodeIterator

createNodeIterator

public NodeIterator createNodeIterator(String property,
                                       boolean reverse,
                                       NodePointer startWith)
Create a NodeIterator.

Parameters:
property - property name
reverse - whether to iterate in reverse
startWith - 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 class NodePointer
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 class NodePointer
Parameters:
index - int

getImmediateNode

public 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 class NodePointer
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 class NodePointer
Returns:
QName

isValidProperty

public boolean isValidProperty(QName name)
Learn whether name is a valid child name for this PropertyOwnerPointer.

Parameters:
name - the QName to test
Returns:
true if QName is a valid property name.
Since:
JXPath 1.3

setValue

public void setValue(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 interface Pointer
Specified by:
setValue in class NodePointer
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 class NodePointer

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 class NodePointer
Parameters:
pointer1 - first pointer to be compared
pointer2 - second pointer to be compared
Returns:
int per Java comparison conventions


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