package com.nfwork.dbfound.el; import javax.el.ELContext; import javax.el.ExpressionFactory; import javax.el.FunctionMapper; import javax.el.MethodExpression; import javax.el.ValueExpression; import javax.servlet.jsp.JspApplicationContext; import javax.servlet.jsp.JspFactory; import javax.servlet.jsp.PageContext; public class ELHelper { @SuppressWarnings("unchecked") public static Object evaluate(String paramString, Class paramClass, PageContext paramPageContext, FunctionMapper paramFunctionMapper) { ValueExpression localValueExpression = createValueExpression( paramString, paramClass, paramPageContext, paramFunctionMapper); return localValueExpression.getValue(paramPageContext.getELContext()); } @SuppressWarnings("unchecked") public static ValueExpression createValueExpression(String paramString, Class paramClass, PageContext paramPageContext, FunctionMapper paramFunctionMapper) { ExpressionFactory localExpressionFactory = getExpressionFactory(paramPageContext); ELContext localELContextImpl = paramPageContext .getELContext(); return localExpressionFactory.createValueExpression(localELContextImpl, paramString, paramClass); } @SuppressWarnings("unchecked") public static MethodExpression createMethodExpression(String paramString, Class paramClass, Class[] paramArrayOfClass, PageContext paramPageContext, FunctionMapper paramFunctionMapper) { ExpressionFactory localExpressionFactory = getExpressionFactory(paramPageContext); ELContext localELContextImpl = paramPageContext.getELContext(); return localExpressionFactory.createMethodExpression( localELContextImpl, paramString, paramClass, paramArrayOfClass); } public static void mapValueExpression(PageContext paramPageContext, String paramString, ValueExpression paramValueExpression) { ELContext localELContext = paramPageContext.getELContext(); localELContext.getVariableMapper().setVariable(paramString, paramValueExpression); } public static void mapMethodExpression(PageContext paramPageContext, String paramString, MethodExpression paramMethodExpression) { ExpressionFactory localExpressionFactory = getExpressionFactory(paramPageContext); ValueExpression localValueExpression = localExpressionFactory .createValueExpression(paramMethodExpression, Object.class); mapValueExpression(paramPageContext, paramString, localValueExpression); } private static ExpressionFactory getExpressionFactory( PageContext paramPageContext) { JspApplicationContext localJspApplicationContext = Holder.jspFactory .getJspApplicationContext(paramPageContext.getServletContext()); return localJspApplicationContext.getExpressionFactory(); } private static class Holder { static JspFactory jspFactory = JspFactory.getDefaultFactory(); } }