package org.jboss.loom.utils.el; import javax.el.ExpressionFactory; import javax.el.ValueExpression; /** * Delegates the variable resolving to an IVariablesProvider provided to the constructor. * Read-only. */ public class ProvidedVariableJuelMapper extends javax.el.VariableMapper { private static final ExpressionFactory JUEL_FACTORY = new de.odysseus.el.ExpressionFactoryImpl(); private final IExprLangEvaluator.IVariablesProvider<Object> provider; public ProvidedVariableJuelMapper( IExprLangEvaluator.IVariablesProvider<Object> provider ) { this.provider = provider; } @Override public ValueExpression resolveVariable( String varName ) { final Object var = this.provider.getVariable( varName ); return JUEL_FACTORY.createValueExpression( var, Object.class ); } @Override public ValueExpression setVariable( String variable, ValueExpression expression ) { throw new UnsupportedOperationException( "Read-only, can't set: " + variable ); } }// class