1 /* JJT: 0.2.2 */ 2 3 package mobisnap.mobile_trx; 4 5 /*** 6 * Implements unary logical expression 7 */ 8 public class ASTSQLUnaryLogicalExpression extends mobisnap.mobile_trx.SimpleNode { 9 public boolean not = false; 10 public boolean existsExpr = false; 11 public SimpleNode expr; 12 13 public ASTSQLUnaryLogicalExpression(int id) { 14 super(id); 15 } 16 17 public ASTSQLUnaryLogicalExpression( MobisnapSQL p, int i) { 18 super( p, i); 19 id = i; 20 } 21 22 /*** Accept the visitor. **/ 23 public Object jjtAccept(MobisnapSQLVisitor visitor, Object data) { 24 return visitor.visit(this, data); 25 } 26 27 /*** 28 * Returns the value of the expression 29 * 30 * @param msql_type Specifies which type of processing should be performed 31 * MobisnapConstants.MSQL_SERVER = 1 32 * MobisnapConstants.MSQL_TENTATIVE_CLIENT = 2 33 * MobisnapConstants.MSQL_STABLE_CLIENT = 3 34 * MobisnapConstants.MSQL_RESERVATION_CLIENT = 4 35 * MobisnapConstants.MSQL_STATIC = 10 36 * @param cond True if reservations associated iwth transaction should be 37 * propagated to the current transaction 38 */ 39 public Object value( int msql_type, boolean cond) throws Exception { 40 if( existsExpr) 41 throw new UnknownValueException( "exists expression in SQLUnaryLocicalExpression"); 42 Object val = expr.value( msql_type, cond); 43 if( ! not) 44 return val; 45 return MSQLTypeUtil.not( val); 46 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 if( existsExpr) 64 return this; 65 try { 66 return new SimpleNodeValue( value( msql_type, cond)); 67 } catch( Exception e) { 68 if( ! not) 69 return expr; 70 else 71 return this; 72 } 73 } 74 }

This page was automatically generated by Maven