Package mondrian.olap

Class Walker

java.lang.Object
mondrian.olap.Walker
All Implemented Interfaces:
Enumeration

public class Walker extends Object implements Enumeration
Walks over a tree, returning nodes in prefix order. Objects which are an instance of Walkable supply their children using getChildren(); other objects are assumed to have no children.

If the tree is modified during the enumeration, strange things may happen.

Example use:

    Tree t;
    Walker w = new Walker(t);
    while (w.hasMoreElements()) {
      Tree node = (Tree) w.nextNode();
      System.out.println(node.toString());
    }
 
  • Constructor Details

    • Walker

      public Walker(mondrian.olap.Walkable root)
  • Method Details

    • hasMoreElements

      public boolean hasMoreElements()
      Specified by:
      hasMoreElements in interface Enumeration
    • nextElement

      public Object nextElement()
      Specified by:
      nextElement in interface Enumeration
    • prune

      public void prune()
      Tell walker that we don't want to visit any (more) children of this node. The next node visited will be (a return visit to) the node's parent. Not valid until nextElement() has been called.
    • pruneSiblings

      public void pruneSiblings()
    • currentElement

      public Object currentElement()
      returns the current object. Not valid until nextElement() has been called.
    • level

      public int level()
      returns level in the tree of the current element (that is, last element returned from nextElement()). The level of the root element is 0.
    • getParent

      public final Object getParent()
    • getAncestor

      public final Object getAncestor(int iDepth)
    • getOrdinal

      public int getOrdinal()
      get the ordinal within its parent node of the current node. Returns 0 for the root element. Equivalent to getAncestorOrdinal(0).
    • getAncestorOrdinal

      public int getAncestorOrdinal(int iDepth)
      get the ordinal within its parent node of the iDepthth ancestor.
    • getChildren

      public Object[] getChildren(Object node)
      Override this function to prune the tree, or to allow objects which are not Walkable to have children.
    • main

      public static void main(String[] args)