Package gnu.lists

Class TreePosition

  • All Implemented Interfaces:
    Cloneable, Enumeration, Iterator, ListIterator
    Direct Known Subclasses:
    Focus

    public class TreePosition
    extends SeqPosition
    implements Cloneable
    A position that can also go down and up in a tree. A TreePosition is a stack of positions. The "current" position (i.e. the one you get if you tree the TreePosition as a SeqPosition) is that in the innermost containing sequence. Normally, the "current" element is (the one following) a position in a sequence. As a special (initial case), we may want to treat the entire sequence is the "current element". This is represented by depth==-1 and xpos set to the root element (which need not actually be a sequence).
    • Constructor Detail

      • TreePosition

        public TreePosition()
      • TreePosition

        public TreePosition​(Object root)
        Not a position *in* a sequence, but the current element is the entire sequence.
    • Method Detail

      • getDepth

        public int getDepth()
        Number of ancestor sequences, including current sequence.
      • getPosNext

        public Object getPosNext()
      • pop

        public void pop()
      • popNoRelease

        public void popNoRelease()
      • gotoParent

        public final boolean gotoParent()
      • gotoChildrenStart

        public boolean gotoChildrenStart()
        Set position before first child (of the element following position).
        Overrides:
        gotoChildrenStart in class SeqPosition
        Returns:
        true if there is a child sequence (which might be empty); false if current position is end of sequence or following element is atomic (cannot have children).
      • gotoAttributesStart

        public boolean gotoAttributesStart()
        Set position before first attribute (of the element following position). This is used to iterate through the sequence of attributes.
      • getAncestor

        public Object getAncestor​(int up)
        Get the value of an ancestor node.
        Parameters:
        up - the number parents to go up.
        Returns:
        if up is 0, same getNext. Otherwise get parent applied as specified.
      • dump

        public void dump()
        Copy this position into pos.