1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.jexl.parser;
17
18 import org.apache.commons.jexl.JexlContext;
19 import org.apache.commons.jexl.util.Coercion;
20
21 /***
22 * && and 'and'
23 *
24 * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
25 * @version $Id: ASTAndNode.java,v 1.4 2004/08/17 13:20:47 dion Exp $
26 */
27 public class ASTAndNode extends SimpleNode
28 {
29 public ASTAndNode(int id)
30 {
31 super(id);
32 }
33
34 public ASTAndNode(Parser p, int id)
35 {
36 super(p, id);
37 }
38
39
40 /*** Accept the visitor. **/
41 public Object jjtAccept(ParserVisitor visitor, Object data)
42 {
43 return visitor.visit(this, data);
44 }
45
46 public Object value(JexlContext jc)
47 throws Exception
48 {
49 Object left = ((SimpleNode) jjtGetChild(0)).value(jc);
50 boolean leftValue = Coercion.coerceBoolean(left).booleanValue();
51
52
53
54
55 return (leftValue
56 &&
57 Coercion.coerceBoolean(
58 ((SimpleNode) jjtGetChild(1)).value(jc)).booleanValue()) ?
59 Boolean.TRUE : Boolean.FALSE;
60 }
61 }