package com.revolsys.spring; import java.util.Map; import org.springframework.expression.Expression; import org.springframework.expression.spel.SpelParserConfiguration; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; public class SpelUtil { public static final SpelParserConfiguration CONFIGURATION = new SpelParserConfiguration(true, true); public static final SpelExpressionParser PARSER = new SpelExpressionParser(CONFIGURATION); @SuppressWarnings("unchecked") public static <V> V getValue(final Expression expression, final Object object, final Map<String, Object> parameters) { final StandardEvaluationContext context = new StandardEvaluationContext(object); if (object instanceof Map) { @SuppressWarnings("rawtypes") final Map map = (Map)object; context.setVariables(map); } if (parameters != null) { context.setVariables(parameters); } return (V)expression.getValue(context); } @SuppressWarnings("unchecked") public static <V> V getValue(final String expressionString, final Object object) { return (V)getValue(expressionString, object, null); } @SuppressWarnings("unchecked") public static <V> V getValue(final String expressionString, final Object object, final Map<String, Object> parameters) { final Expression expression = parse(expressionString); return (V)getValue(expression, object, parameters); } public static Expression parse(final String expressionString) { final Expression expression = PARSER.parseExpression(expressionString); return expression; } }