public String PPrint(int indent, boolean recursive) { String output = new String(); if (children.size() == 0) { output += doIndent(indent) + "<" + label + "/>\n"; } else { output += doIndent(indent) + "<" + label + ">\n"; indent += 2; if (recursive) { for (int i = 0; i < children.size(); i++) { Walkable w = (Walkable) children.elementAt(i); output += w.PPrint(indent, true); } } else { for (int i = 0; i < children.size(); i++) { Walkable w = (Walkable) children.elementAt(i); output += doIndent(indent) + "<" + w.getNodeName() + "/>\n"; } } indent -= 2; output += doIndent(indent) + "</" + label + ">\n"; } return output; }
public ParseNodeVector getChildren(String label) { int i; ParseNodeVector v = new ParseNodeVector(); for (i = 0; i < children.size(); i++) { ParseNode pn = children.elementAt(i); if (pn.getLabel().equals(label)) v.addElement(pn); } return v; }
public ParseNode getChild(String label) { int i; ParseNode p; for (i = 0; i < children.size(); i++) { p = children.elementAt(i); if (p.getLabel().equals(label)) { return p; } } return null; }
public int getNeighborCount() { return children.size(); }