1 16 17 package org.apache.commons.jexl.parser; 18 19 import org.apache.commons.jexl.JexlContext; 20 import org.apache.commons.jexl.util.Coercion; 21 22 28 public class ASTIfStatement extends SimpleNode { 29 30 private static final int ELSE_STATEMENT_INDEX = 2; 31 36 public ASTIfStatement(int id) { 37 super(id); 38 } 39 40 46 public ASTIfStatement(Parser p, int id) { 47 super(p, id); 48 } 49 50 51 public Object jjtAccept(ParserVisitor visitor, Object data) { 52 return visitor.visit(this, data); 53 } 54 55 56 public Object value(JexlContext jc) throws Exception { 57 Object result = null; 58 59 Object expression = ((SimpleNode) jjtGetChild(0)).value(jc); 60 if (Coercion.coerceBoolean(expression).booleanValue()) { 61 result = ((SimpleNode) jjtGetChild(1)).value(jc); 63 } else { 64 if (jjtGetNumChildren() == ELSE_STATEMENT_INDEX + 1) { 66 result = ((SimpleNode) jjtGetChild(2)).value(jc); 67 } 68 } 69 70 return result; 71 } 72 73 } 74 | Popular Tags |