package org.anodyneos.xpImpl.xpEl;
import java.util.HashMap;
import javax.servlet.jsp.el.ExpressionEvaluator;
import javax.servlet.jsp.el.FunctionMapper;
import javax.servlet.jsp.el.VariableResolver;
import org.apache.commons.el.ExpressionEvaluatorImpl;
public class TestEL {
public static void main(String[] args) throws Exception {
HashMap vars = new HashMap();
VariableResolver variableResolver = new SimpleVariableResolver(vars);
ExpressionEvaluator sEvaluator = new ExpressionEvaluatorImpl();
vars.put("str", "${8 + 2}");
vars.put("num", new Integer(8));
HashMap pc = new HashMap();
pc.put("str", "in_pc");
vars.put("pageContext", pc);
String pAttributeValue;
pAttributeValue = "${2 + 2}";
pAttributeValue = "${'${8 + 2}'} = ${num / 3}";
pAttributeValue = "${str} = ${num + 2}";
pAttributeValue = "${pageContext.str} = something";
Object pPageContext = null;
Class pExpectedType = String.class;
FunctionMapper functionMapper = null;
String defaultPrefix = null;
System.out.println(
sEvaluator.evaluate
(pAttributeValue,
pExpectedType,
variableResolver,
functionMapper));
// sEvaluator.parseExpressionString (pAttributeValue);
}
public static class SimpleVariableResolver implements VariableResolver {
private HashMap vars;
public SimpleVariableResolver(HashMap vars) {
this.vars = vars;
}
public Object resolveVariable(String pName) {
return vars.get(pName);
}
//public Object resolveVariable(String pName, Object cContext) {
// return vars.get(pName);
//}
}
}