package org.xmlsmartdoc.SmartDoc.mathml.rParts; import java.util.*; import org.w3c.dom.*; /** * IRVisitable * * @since Apr. 30, 2000 * @version Apr. 30, 2000 * @author ASAMI, Tomoharu (asami@zeomtech.com) */ public final class URVisitor { public static void traverse(IRNode node, IRVisitor visitor) { traverseDepth(node, visitor); } public static void traverseDepth(IRNode node, IRVisitor visitor) { IRVisitable visitable = (IRVisitable)node; visitable.enter(visitor); IRNode[] children = node.getRNodes(); for (int i = 0;i < children.length;i++) { traverseDepth(children[i], visitor); } visitable.leave(visitor); } public static void traverseBreadth(IRNode node, IRVisitor visitor) { IRVisitable visitable = (IRVisitable)node; visitable.enter(visitor); traverseBreadthChildren(node, visitor); visitable.leave(visitor); } public static void traverseBreadthChildren( IRNode node, IRVisitor visitor ) { IRNode[] children = node.getRNodes(); for (int i = 0;i < children.length;i++) { IRVisitable visitable = (IRVisitable)children[i]; visitable.enter(visitor); visitable.leave(visitor); } for (int i = 0;i < children.length;i++) { IRNode child = children[i]; traverseBreadth(child, visitor); } } }