1 2 3 package org.objectweb.jonas_ejb.deployment.ejbql; 4 5 6 import java.util.ArrayList ; 7 import java.util.Iterator ; 8 9 14 15 public class SimpleNode implements Node { 16 protected Node parent; 17 protected Node[] children; 18 protected int id; 19 protected EJBQL parser; 20 21 public ArrayList ops=new ArrayList (); public Object value = null; 24 public boolean distinct = false; 25 public boolean not = false; 26 public boolean third = false; public int eltnum = 0; public boolean asc = true; 31 public SimpleNode(int i) { 32 id = i; 33 } 34 35 public SimpleNode(EJBQL p, int i) { 36 this(i); 37 parser = p; 38 } 39 40 public void jjtOpen() { 41 } 42 43 public void jjtClose() { 44 } 45 46 public void jjtSetParent(Node n) { parent = n; } 47 public Node jjtGetParent() { return parent; } 48 49 public void jjtAddChild(Node n, int i) { 50 if (children == null) { 51 children = new Node[i + 1]; 52 } else if (i >= children.length) { 53 Node c[] = new Node[i + 1]; 54 System.arraycopy(children, 0, c, 0, children.length); 55 children = c; 56 } 57 children[i] = n; 58 } 59 60 public Node jjtGetChild(int i) { 61 return children[i]; 62 } 63 64 public int jjtGetNumChildren() { 65 return (children == null) ? 0 : children.length; 66 } 67 68 69 public Object jjtAccept(EJBQLVisitor visitor, Object data) { 70 return visitor.visit(this, data); 71 } 72 73 74 public Object childrenAccept(EJBQLVisitor visitor, Object data) { 75 if (children != null) { 76 for (int i = 0; i < children.length; ++i) { 77 children[i].jjtAccept(visitor, data); 78 } 79 } 80 return data; 81 } 82 83 88 89 public String toString() { 92 String ret = ""; 93 if (not) ret+="NOT "; 94 if (distinct) ret+="DISTINCT "; 95 if (asc) { 96 ret+="ASC "; 97 } else { 98 ret+="DESC "; 99 } 100 101 if (ops.size()!=0) { 102 ret+="("; 103 for (Iterator i = ops.iterator(); i.hasNext();) { 104 String token=EJBQLConstants.tokenImage[((Integer )i.next()).intValue()]; 105 ret+=token.substring(1,token.length()-1)+","; 106 } 107 ret = ret.substring(0,ret.length()-1); 108 } 109 if (value!=null) ret+=value; 110 if (ops.size()!=0) ret+=")"; 111 return EJBQLTreeConstants.jjtNodeName[id]+" "+ret; 112 } 113 public String toString(String prefix) { return prefix + toString(); } 115 116 118 119 public void dump(String prefix) { 120 System.out.println(toString(prefix)); 121 if (children != null) { 122 for (int i = 0; i < children.length; ++i) { 123 SimpleNode n = (SimpleNode)children[i]; 124 if (n != null) { 125 n.dump(prefix + " "); 126 } 127 } 128 } 129 } 130 } 131 132 | Popular Tags |