1 /* JJT: 0.2.2 */ 2 3 package mobisnap.mobile_trx; 4 5 import java.util.*; 6 7 public class ASTIfStatement extends mobisnap.mobile_trx.SimpleNode { 8 public class Alternatives { 9 public ASTPlSqlExpression expr; 10 public ASTSequenceOfStatements stats; 11 12 public Alternatives( ASTPlSqlExpression expr, ASTSequenceOfStatements stats ) { 13 this.expr = expr; 14 this.stats = stats; 15 } 16 17 }; 18 public Vector alternatives; 19 public ASTSequenceOfStatements elseStats; 20 21 22 public ASTIfStatement(int id) { 23 super(id); 24 alternatives = new Vector(); 25 elseStats = null; 26 } 27 28 public ASTIfStatement( MobisnapSQL p, int i) { 29 super( p, i); 30 id = i; 31 alternatives = new Vector(); 32 elseStats = null; 33 } 34 35 /*** Accept the visitor. **/ 36 public Object jjtAccept(MobisnapSQLVisitor visitor, Object data) { 37 return visitor.visit(this, data); 38 } 39 40 public void insert( ASTPlSqlExpression expr, ASTSequenceOfStatements stats) { 41 alternatives.addElement( new Alternatives( expr, stats)); 42 } 43 44 public void process( int msql_type) throws Exception { 45 for( int i = 0; i < alternatives.size(); i++) { 46 Alternatives aux = (Alternatives)alternatives.elementAt( i); 47 Object obj = aux.expr.value( msql_type, true); 48 if( obj instanceof SQLNull) 49 continue; 50 if( obj instanceof Boolean) { 51 if( ((Boolean)obj).booleanValue()) { 52 aux.stats.process( msql_type); 53 return; 54 } else 55 continue; 56 } 57 if( obj instanceof String && (((String)obj).equalsIgnoreCase( "true") || ((String)obj).equalsIgnoreCase( "false"))) { 58 if( ((String)obj).equalsIgnoreCase( "true")) { 59 aux.stats.process( msql_type); 60 return; 61 } else 62 continue; 63 } 64 throw new mobisnap.MobisnapException( "Invalid expression in if statement"); 65 } 66 if( elseStats != null) 67 elseStats.process( msql_type); 68 } 69 70 }

This page was automatically generated by Maven