KickJava   Java API By Example, From Geeks To Geeks.

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


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 final class BoolExpressionBinary 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.visitBinary(e1, op, e2);
27   }
28   private final BoolExpression e1;
29   private final BoolBinaryOp op;
30   private final BoolExpression e2;
31   
32   /**
33    * @param e1
34    * @param e2
35    */

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