com.thoughtworks.xstream.io.path
Class PathTracker

java.lang.Object
  extended by com.thoughtworks.xstream.io.path.PathTracker

public class PathTracker
extends Object

Maintains the current Path as a stream is moved through.

Can be linked to a HierarchicalStreamWriter or HierarchicalStreamReader by wrapping them with a PathTrackingWriter or PathTrackingReader.

Example

 PathTracker tracker = new PathTracker();
 tracker.pushElement("table");
 tracker.pushElement("tr");
 tracker.pushElement("td");
 tracker.pushElement("form");
 tracker.popElement("form");
 tracker.popElement("td");
 tracker.pushElement("td");
 tracker.pushElement("div");

 Path path = tracker.getPath(); // returns "/table/tr/td[2]/div"
 

Author:
Joe Walnes
See Also:
Path, PathTrackingReader, PathTrackingWriter

Constructor Summary
PathTracker()
           
PathTracker(int initialCapacity)
           
 
Method Summary
 int depth()
          Get the depth of the stack.
 Path getPath()
          Current Path in stream.
 String peekElement()
          Get the last path element from the stack.
 String peekElement(int i)
          Get a path element from the stack.
 void popElement()
          Notify the tracker that the stream has moved out of an element.
 void pushElement(String name)
          Notify the tracker that the stream has moved into a new element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PathTracker

public PathTracker()

PathTracker

public PathTracker(int initialCapacity)
Parameters:
initialCapacity - Size of the initial stack of nodes (one level per depth in the tree). Note that this is only for optimizations - the stack will resize itself if it exceeds its capacity. If in doubt, use the other constructor.
Method Detail

pushElement

public void pushElement(String name)
Notify the tracker that the stream has moved into a new element.

Parameters:
name - Name of the element

popElement

public void popElement()
Notify the tracker that the stream has moved out of an element.


peekElement

public String peekElement()
Get the last path element from the stack.

Returns:
the name of the path element
Since:
1.4.2

peekElement

public String peekElement(int i)
Get a path element from the stack.

Parameters:
i - path index
Returns:
the name of the path element
Throws:
ArrayIndexOutOfBoundsException - if the index is >= 0 or <= -depth()
Since:
1.4.2

depth

public int depth()
Get the depth of the stack.

Returns:
the stack depth
Since:
1.4.2

getPath

public Path getPath()
Current Path in stream.



Copyright © 2004-2014 XStream. All Rights Reserved.