/** * Evaluates an expression within the scope of this processor's context. * * @param expression The String expression * @param type Expected result type * @param defaultValue Default value to return in case of error */ public <T> T evaluate(String expression, Class<T> type, T defaultValue) { try { ValueExpression expr = expressions.parse(expression, type); Object result = expr.getValue(elContext); return type.cast(result); } catch (ELException e) { logger.log( Level.WARNING, "EL failure for gadget {0}: {1}", new Object[] {getTemplateContext().getGadget().getContext().getUrl(), e.getMessage()}); return defaultValue; } }