1 2 package org.codehaus.aspectwerkz.annotation.expression.ast; 3 4 public class SimpleNode implements Node { 5 protected Node parent; 6 7 protected Node[] children; 8 9 protected int id; 10 11 protected AnnotationParser parser; 12 13 public SimpleNode(int i) { 14 id = i; 15 } 16 17 public SimpleNode(AnnotationParser p, int i) { 18 this(i); 19 parser = p; 20 } 21 22 public void jjtOpen() { 23 } 24 25 public void jjtClose() { 26 } 27 28 public void jjtSetParent(Node n) { 29 parent = n; 30 } 31 32 public Node jjtGetParent() { 33 return parent; 34 } 35 36 public void jjtAddChild(Node n, int i) { 37 if (children == null) { 38 children = new Node[i + 1]; 39 } else if (i >= children.length) { 40 Node[] c = new Node[i + 1]; 41 System.arraycopy(children, 0, c, 0, children.length); 42 children = c; 43 } 44 children[i] = n; 45 } 46 47 public Node jjtGetChild(int i) { 48 return children[i]; 49 } 50 51 public int jjtGetNumChildren() { 52 return (children == null) ? 0 : children.length; 53 } 54 55 58 public Object jjtAccept(AnnotationParserVisitor visitor, Object data) { 59 return visitor.visit(this, data); 60 } 61 62 65 public Object childrenAccept(AnnotationParserVisitor visitor, Object data) { 66 if (children != null) { 67 for (int i = 0; i < children.length; ++i) { 68 children[i].jjtAccept(visitor, data); 69 } 70 } 71 return data; 72 } 73 74 79 public String toString() { 80 return AnnotationParserTreeConstants.jjtNodeName[id]; 81 } 82 83 public String toString(String prefix) { 84 return prefix + toString(); 85 } 86 87 90 public void dump(String prefix) { 91 System.out.println(toString(prefix)); 92 if (children != null) { 93 for (int i = 0; i < children.length; ++i) { 94 SimpleNode n = (SimpleNode) children[i]; 95 if (n != null) { 96 n.dump(prefix + " "); 97 } 98 } 99 } 100 } 101 } | Popular Tags |