Class PathTracker


  • public class PathTracker
    extends java.lang.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

      Constructors 
      Constructor Description
      PathTracker()  
      PathTracker​(int initialCapacity)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int depth()
      Get the depth of the stack.
      Path getPath()
      Current Path in stream.
      java.lang.String peekElement()
      Get the last path element from the stack.
      java.lang.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​(java.lang.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​(java.lang.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 java.lang.String peekElement()
        Get the last path element from the stack.
        Returns:
        the name of the path element
        Since:
        1.4.2
      • peekElement

        public java.lang.String peekElement​(int i)
        Get a path element from the stack.
        Parameters:
        i - path index
        Returns:
        the name of the path element
        Throws:
        java.lang.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.