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