View Javadoc

1   package org.apache.commons.jexl.resolver;
2   
3   import org.apache.commons.jexl.JexlExprResolver;
4   import org.apache.commons.jexl.JexlContext;
5   
6   /***
7    *  Simple resolver to try the expression as-is from the context.
8    *
9    *  For example, you could resolve ant-ish properties (foo.bar.woogie)
10   *  using this...
11   *
12   *  hint, hint...
13   *
14   *  @author <a href="mailto:geirm@adeptra.com">Geir Magnusson Jr.</a>
15   *  @version $Id: FlatResolver.java,v 1.1 2002/06/13 16:10:44 geirm Exp $
16   */
17  public class FlatResolver implements JexlExprResolver
18  {
19      /***
20       *  flag to return NO_VALUE on null from context
21       *  this allows jexl to try to evaluate
22       */
23      protected boolean noValOnNull = true;
24  
25      /***
26       * default CTOR
27       */
28      public FlatResolver()
29      {
30      }
31  
32      /***
33       *  CTOR that lets you override the default behavior of
34       *  noValOnNull, which is true (jexl gets a shot after if null)
35       */
36      public FlatResolver(boolean noValOnNull)
37      {
38          this.noValOnNull = noValOnNull;
39      }
40  
41      public Object evaluate(JexlContext context, String expression)
42      {
43          Object val = context.getVars().get(expression);
44  
45          if (val == null && noValOnNull)
46          {
47              return JexlExprResolver.NO_VALUE;
48          }
49  
50          return val;
51      }
52  }