public Expression parseExpression(String expression, Class expectedType, FunctionMapper fMapper ) throws ELException { ExpressionFactory fac = ExpressionFactory.newInstance(); javax.el.ValueExpression expr; ELContextImpl elContext = new ELContextImpl(null); javax.el.FunctionMapper fm = new FunctionMapperWrapper(fMapper); elContext.setFunctionMapper(fm); try { expr = fac.createValueExpression( elContext, expression, expectedType); } catch (javax.el.ELException ex) { throw new ELException(ex); } return new ExpressionImpl(expr, pageContext); }
@Override public Expression parseExpression(String expression, @SuppressWarnings("rawtypes") // API does not use generics Class expectedType, FunctionMapper fMapper) throws ELException { try { ELContextImpl ctx = new ELContextImpl(ELContextImpl.getDefaultResolver()); if (fMapper != null) { ctx.setFunctionMapper(new FunctionMapperImpl(fMapper)); } ValueExpression ve = this.factory.createValueExpression(ctx, expression, expectedType); return new ExpressionImpl(ve); } catch (javax.el.ELException e) { throw new ELParseException(e.getMessage()); } }
@Override public Expression parseExpression(String expression, @SuppressWarnings("rawtypes") // API // does // not // use // generics Class expectedType, FunctionMapper fMapper) throws ELException { try { ELContextImpl ctx = new ELContextImpl(ELContextImpl.getDefaultResolver()); if (fMapper != null) { ctx.setFunctionMapper(new FunctionMapperImpl(fMapper)); } ValueExpression ve = this.factory.createValueExpression(ctx, expression, expectedType); return new ExpressionImpl(ve); } catch (javax.el.ELException e) { throw new ELParseException(e.getMessage()); } }
@Override public Expression parseExpression(String expression, @SuppressWarnings("rawtypes") // API does not use generics Class expectedType, FunctionMapper fMapper) throws ELException { try { ELContextImpl ctx = new ELContextImpl(ELResolverImpl.getDefaultResolver()); if (fMapper != null) { ctx.setFunctionMapper(new FunctionMapperImpl(fMapper)); } ValueExpression ve = this.factory.createValueExpression(ctx, expression, expectedType); return new ExpressionImpl(ve); } catch (javax.el.ELException e) { throw new ELParseException(e.getMessage()); } }
@Override public Object evaluate(String expression, @SuppressWarnings("rawtypes") // API does not use generics Class expectedType, VariableResolver vResolver, FunctionMapper fMapper) throws ELException { return this.parseExpression(expression, expectedType, fMapper).evaluate(vResolver); }
public Expression parseExpression(String expression, Class expectedType, FunctionMapper fMapper) throws ELException { try { ELContextImpl ctx = new ELContextImpl(ELResolverImpl.getDefaultResolver()); if (fMapper != null) { ctx.setFunctionMapper(new FunctionMapperImpl(fMapper)); } ValueExpression ve = this.factory.createValueExpression(ctx, expression, expectedType); return new ExpressionImpl(ve); } catch (javax.el.ELException e) { throw new ELParseException(e.getMessage()); } }
@Override public Object evaluate(String expression, @SuppressWarnings("rawtypes") // API // does // not // use // generics Class expectedType, VariableResolver vResolver, FunctionMapper fMapper) throws ELException { return this.parseExpression(expression, expectedType, fMapper).evaluate(vResolver); }
public Object evaluate(String expression, Class expectedType, VariableResolver vResolver, FunctionMapper fMapper ) throws ELException { ELContextImpl elContext; if (vResolver instanceof VariableResolverImpl) { elContext = (ELContextImpl) pageContext.getELContext(); } else { // The provided variable Resolver is a custom resolver, // wrap it with a ELResolver elContext = new ELContextImpl(new ELResolverWrapper(vResolver)); } javax.el.FunctionMapper fm = new FunctionMapperWrapper(fMapper); elContext.setFunctionMapper(fm); ExpressionFactory fac = ExpressionFactory.newInstance(); Object value; try { ValueExpression expr = fac.createValueExpression( elContext, expression, expectedType); value = expr.getValue(elContext); } catch (javax.el.ELException ex) { throw new ELException(ex); } return value; }
@Override public Expression parseExpression( final String expression, final Class expectedType, final FunctionMapper functionMapper) throws ELException { return new Expression() { @Override public Object evaluate(VariableResolver variableResolver) throws ELException { return doEvaluate(expression, expectedType, functionMapper); } }; }
@Override public Object evaluate( String expression, Class expectedType, VariableResolver variableResolver, FunctionMapper functionMapper) throws ELException { if (variableResolver != null) { throw new IllegalArgumentException("Custom VariableResolver not supported"); } return doEvaluate(expression, expectedType, functionMapper); }
protected Object doEvaluate( String expression, Class expectedType, FunctionMapper functionMapper) throws ELException { if (functionMapper != null) { throw new IllegalArgumentException("Custom FunctionMapper not supported"); } try { return ExpressionEvaluatorManager.evaluate("JSP EL expression", expression, expectedType, this.pageContext); } catch (JspException ex) { throw new ELException("Parsing of JSP EL expression \"" + expression + "\" failed", ex); } }
@SuppressWarnings("rawtypes") public Expression parseExpression(final String expression, final Class expectedType, final FunctionMapper functionMapper) throws ELException { return new Expression() { public Object evaluate(VariableResolver variableResolver) throws ELException { return doEvaluate(expression, expectedType, functionMapper); } }; }
@SuppressWarnings("rawtypes") public Object evaluate(String expression, Class expectedType, VariableResolver variableResolver, FunctionMapper functionMapper) throws ELException { if (variableResolver != null) { throw new IllegalArgumentException("Custom VariableResolver not supported"); } return doEvaluate(expression, expectedType, functionMapper); }
@SuppressWarnings("rawtypes") protected Object doEvaluate(String expression, Class expectedType, FunctionMapper functionMapper) throws ELException { if (functionMapper != null) { throw new IllegalArgumentException("Custom FunctionMapper not supported"); } try { return ExpressionEvaluatorManager.evaluate("JSP EL expression", expression, expectedType, this.pageContext); } catch (JspException ex) { throw new ELException("Parsing of JSP EL expression \"" + expression + "\" failed", ex); } }
public FunctionMapperImpl(FunctionMapper fnMapper) { this.fnMapper = fnMapper; }
public Object evaluate(String expression, Class expectedType, VariableResolver vResolver, FunctionMapper fMapper) throws ELException { return this.parseExpression(expression, expectedType, fMapper).evaluate(vResolver); }
FunctionMapperWrapper(FunctionMapper mapper) { this.mapper = mapper; }
@Override public Object evaluate(String arg0, Class arg1, VariableResolver arg2, FunctionMapper arg3) throws ELException { return null; }
@Override public Expression parseExpression(String arg0, Class arg1, FunctionMapper arg2) throws ELException { return null; }
@Override public Expression parseExpression(String expression, Class expectedType, FunctionMapper functionMapper) throws ELException { this.parseExpressionCount++; return super.parseExpression(expression, expectedType, functionMapper); }
@Override public Object evaluate(String expression, Class expectedType, VariableResolver variableResolver, FunctionMapper functionMapper) throws ELException { this.evaluateCount++; return super.evaluate(expression, expectedType, variableResolver, functionMapper); }