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
20
21 /***
22 * -
23 *
24 * @author <a href="mailto:mhw@kremvax.net">Mark H. Wilkinson</a>
25 * @version $Id: ASTUnaryMinusNode.java,v 1.3 2004/02/28 13:45:20 yoavs Exp $
26 */
27 public class ASTUnaryMinusNode extends SimpleNode
28 {
29 public ASTUnaryMinusNode(int id)
30 {
31 super(id);
32 }
33
34 public ASTUnaryMinusNode(Parser p, int id)
35 {
36 super(p, id);
37 }
38
39 /*** Accept the visitor. **/
40 public Object jjtAccept(ParserVisitor visitor, Object data)
41 {
42 return visitor.visit(this, data);
43 }
44
45 public Object value(JexlContext jc)
46 throws Exception
47 {
48 Object val = ((SimpleNode) jjtGetChild(0)).value(jc);
49
50 if (val instanceof Integer)
51 {
52 return new Integer(- ( ((Integer) val).intValue() ) );
53 }
54 else
55 {
56 throw new Exception("expression not integer valued");
57 }
58 }
59 }
60