1 /* JJT: 0.2.2 */
2
3 package mobisnap.mobile_trx;
4
5 /***
6 * Implements unary expression
7 */
8 public class ASTSQLUnaryExpression extends mobisnap.mobile_trx.SimpleNode {
9 public SimpleNode expr;
10 public byte sign = 0; // 0 - no sign; 1 - + ; 2 - -
11
12 public ASTSQLUnaryExpression(int id) {
13 super(id);
14 }
15
16 public ASTSQLUnaryExpression( MobisnapSQL p, int i) {
17 super( p, i);
18 id = i;
19 }
20
21 /*** Accept the visitor. **/
22 public Object jjtAccept(MobisnapSQLVisitor visitor, Object data) {
23 return visitor.visit(this, data);
24 }
25
26 /***
27 * Returns the value of the expression
28 *
29 * @param msql_type Specifies which type of processing should be performed
30 * MobisnapConstants.MSQL_SERVER = 1
31 * MobisnapConstants.MSQL_TENTATIVE_CLIENT = 2
32 * MobisnapConstants.MSQL_STABLE_CLIENT = 3
33 * MobisnapConstants.MSQL_RESERVATION_CLIENT = 4
34 * MobisnapConstants.MSQL_STATIC = 10
35 * @param cond True if reservations associated iwth transaction should be
36 * propagated to the current transaction
37 */
38 public Object value( int msql_type, boolean cond) throws Exception {
39 Object val = expr.value( msql_type, cond);
40 if( sign == 0)
41 return val;
42 if( sign == 1) {
43 MSQLTypeUtil.negate( val); // just to test if sign may be assigned
44 return val;
45 } else
46 return MSQLTypeUtil.negate( val);
47 }
48
49 /***
50 * Returns a simplified node, if possible (usefull in expressions)
51 *
52 * @param msql_type Specifies which type of processing should be performed
53 * MobisnapConstants.MSQL_SERVER = 1
54 * MobisnapConstants.MSQL_TENTATIVE_CLIENT = 2
55 * MobisnapConstants.MSQL_STABLE_CLIENT = 3
56 * MobisnapConstants.MSQL_RESERVATION_CLIENT = 4
57 * MobisnapConstants.MSQL_STATIC = 10
58 * @param cond True if reservations associated iwth transaction should be
59 * propagated to the current transaction
60 */
61 public SimpleNode simplify( int msql_type, boolean cond) {
62 expr = (SimpleNode)expr.simplify( msql_type, cond);
63 try {
64 return new SimpleNodeValue( value( msql_type, cond));
65 } catch( Exception e) {
66 if( sign == 0)
67 return expr;
68 return this;
69 }
70 }
71
72 }
This page was automatically generated by Maven