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 * Not : 'not' or '!'
23 *
24 * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
25 * @version $Id: ASTNotNode.java,v 1.3 2004/02/28 13:45:20 yoavs Exp $
26 */
27
28 public class ASTNotNode extends SimpleNode
29 {
30 public ASTNotNode(int id)
31 {
32 super(id);
33 }
34
35 public ASTNotNode(Parser p, int id)
36 {
37 super(p, id);
38 }
39
40
41 /*** Accept the visitor. **/
42 public Object jjtAccept(ParserVisitor visitor, Object data)
43 {
44 return visitor.visit(this, data);
45 }
46
47 public Object value(JexlContext jc)
48 throws Exception
49 {
50 Object val = ((SimpleNode) jjtGetChild(0)).value(jc);
51
52
53
54
55
56 Boolean b = Coercion.coerceBoolean(val);
57
58 if (b != null)
59 return b.booleanValue() ? Boolean.FALSE : Boolean.TRUE;
60
61 throw new Exception("expression not boolean valued");
62 }
63
64 }