KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > jfun > parsec > mssql > ExpressionComparison


1 /*
2  * Created on 2004-11-15
3  *
4  * Author Ben Yu
5  */

6 package tests.jfun.parsec.mssql;
7
8 /**
9  * @author Ben Yu
10  *
11  * 2004-11-15
12  */

13 public final class ExpressionComparison implements BoolExpression {
14
15   /*
16    * @see jfun.parsec.mssql.BoolExpression#getPrecedence()
17    */

18   public int getPrecedence() {
19     return op.getPrecedence();
20   }
21
22   /*
23    * @see jfun.parsec.mssql.BoolExpression#accept(jfun.parsec.mssql.BoolExpressionVisitor)
24    */

25   public void accept(BoolExpressionVisitor v) {
26     v.visitCompare(e1, op, e2);
27   }
28   private final Expression e1;
29   private final LogicalBinaryOp op;
30   private final Expression e2;
31   
32   /**
33    * @param e1
34    * @param op
35    * @param e2
36    */

37   ExpressionComparison(final Expression e1, final LogicalBinaryOp op,
38       final Expression e2) {
39     this.e1 = e1;
40     this.op = op;
41     this.e2 = e2;
42   }
43   public String JavaDoc toString(){
44     final StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
45     final int pred = op.getPrecedence();
46     if(e1.getPrecedence() < pred)
47       buf.append('(').append(e1).append(')');
48     else buf.append(e1);
49     buf.append(op);
50     if(e2.getPrecedence() <= pred)
51       buf.append(')').append(e2).append(')');
52     else buf.append(e2);
53     return buf.toString();
54   }
55 }
56
Popular Tags