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

java.lang.Object
  extended by org.apache.commons.jxpath.ri.model.beans.PropertyIterator
All Implemented Interfaces:
NodeIterator
Direct Known Subclasses:
BeanAttributeIterator, DynamicPropertyIterator

public class PropertyIterator
extends java.lang.Object
implements NodeIterator

Iterates property values of an object pointed at with a PropertyOwnerPointer. Examples of such objects are JavaBeans and objects with Dynamic Properties.

Version:
$Revision: 652845 $ $Date: 2008-05-02 12:46:46 -0500 (Fri, 02 May 2008) $
Author:
Dmitri Plotnikov

Field Summary
private  boolean empty
           
private  boolean includeStart
           
private  java.lang.String name
           
private  int position
           
private  PropertyPointer propertyNodePointer
           
private  boolean reverse
           
private  int startIndex
           
private  int startPropertyIndex
           
private  boolean targetReady
           
 
Constructor Summary
PropertyIterator(PropertyOwnerPointer pointer, java.lang.String name, boolean reverse, NodePointer startWith)
          Create a new PropertyIterator.
 
Method Summary
private  int getLength()
          Computes length for the current pointer - ignores any exceptions.
 NodePointer getNodePointer()
          Get the NodePointer at the current position.
 int getPosition()
          Get the current iterator position.
protected  NodePointer getPropertyPointer()
          Get the property pointer.
protected  void prepareForIndividualProperty(java.lang.String name)
          Prepare for an individual property.
 void reset()
          Reset property iteration.
 boolean setPosition(int position)
          Set the new current position.
private  boolean setPositionAllProperties(int position)
          Set position for all properties
private  boolean setPositionIndividualProperty(int position)
          Set position for an individual property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

empty

private boolean empty

reverse

private boolean reverse

name

private java.lang.String name

startIndex

private int startIndex

targetReady

private boolean targetReady

position

private int position

propertyNodePointer

private PropertyPointer propertyNodePointer

startPropertyIndex

private int startPropertyIndex

includeStart

private boolean includeStart
Constructor Detail

PropertyIterator

public PropertyIterator(PropertyOwnerPointer pointer,
                        java.lang.String name,
                        boolean reverse,
                        NodePointer startWith)
Create a new PropertyIterator.

Parameters:
pointer - owning pointer
name - property name
reverse - iteration order
startWith - beginning pointer
Method Detail

getPropertyPointer

protected NodePointer getPropertyPointer()
Get the property pointer.

Returns:
NodePointer

reset

public void reset()
Reset property iteration.


getNodePointer

public NodePointer getNodePointer()
Description copied from interface: NodeIterator
Get the NodePointer at the current position.

Specified by:
getNodePointer in interface NodeIterator
Returns:
NodePointer

getPosition

public int getPosition()
Description copied from interface: NodeIterator
Get the current iterator position.

Specified by:
getPosition in interface NodeIterator
Returns:
int position

setPosition

public boolean setPosition(int position)
Description copied from interface: NodeIterator
Set the new current position.

Specified by:
setPosition in interface NodeIterator
Parameters:
position - the position to set
Returns:
true if there is a node at position.

setPositionIndividualProperty

private boolean setPositionIndividualProperty(int position)
Set position for an individual property.

Parameters:
position - int position
Returns:
whether this was a valid position

setPositionAllProperties

private boolean setPositionAllProperties(int position)
Set position for all properties

Parameters:
position - int position
Returns:
whether this was a valid position

prepareForIndividualProperty

protected void prepareForIndividualProperty(java.lang.String name)
Prepare for an individual property.

Parameters:
name - property name

getLength

private int getLength()
Computes length for the current pointer - ignores any exceptions.

Returns:
length