1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.jexl.parser;
19
20 import org.apache.commons.jexl.JexlContext;
21
22 /***
23 * Simple identifier -
24 * $foo or $foo.bar (both parts are identifiers...)
25 *
26 * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
27 * @version $Id: ASTIdentifier.java,v 1.6 2004/02/28 13:45:20 yoavs Exp $
28 */
29 public class ASTIdentifier extends SimpleNode
30 {
31 protected String val;
32
33 public ASTIdentifier(int id)
34 {
35 super(id);
36 }
37
38 public ASTIdentifier(Parser p, int id)
39 {
40 super(p, id);
41 }
42
43 /*** Accept the visitor. **/
44 public Object jjtAccept(ParserVisitor visitor, Object data)
45 {
46 return visitor.visit(this, data);
47 }
48
49
50 public Object value(JexlContext jc)
51 throws Exception
52 {
53 return jc.getVars().get(val);
54 }
55
56 /***
57 * returns the value of itself applied to the object.
58 * We assume that an identifier can be gotten via a get(String)
59 */
60 public Object execute(Object obj, JexlContext jc)
61 throws Exception
62 {
63 return ASTArrayAccess.evaluateExpr(obj, val);
64 }
65
66 public String getIdentifierString()
67 {
68 return val;
69 }
70 }