package org.jboss.loom.utils.el;
import java.util.Map;
import javax.el.ExpressionFactory;
import javax.el.ValueExpression;
/**
* JUEL: http://juel.sourceforge.net/guide/start.html
*/
public class JuelSimpleEvaluator implements IExprLangEvaluator {
private static final ExpressionFactory JUEL_FACTORY = new de.odysseus.el.ExpressionFactoryImpl();
private final Map<String, ? extends Object> properties;
public JuelSimpleEvaluator( Map<String, ? extends Object> properties ) {
this.properties = properties;
}
public String evaluateEL( String expr ) {
// Pre-fill a context with values.
de.odysseus.el.util.SimpleContext context = new de.odysseus.el.util.SimpleContext();
for( Map.Entry<String, ? extends Object> entry : properties.entrySet() ) {
context.setVariable( entry.getKey(), JUEL_FACTORY.createValueExpression( entry.getValue(), String.class ) );
}
// Create the value expression and evaluate.
ValueExpression valueExpr = JUEL_FACTORY.createValueExpression( context, expr, String.class );
return (String) valueExpr.getValue( context );
}
}// class