package org.springframework.data.cassandra.util;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.ParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
public class SpelUtils {
public static final SpelExpressionParser DEFAULT_PARSER = new SpelExpressionParser();
/**
* Evaluates the given value against the given context as a string.
*/
public static String evaluate(CharSequence value, EvaluationContext context) {
return evaluate(value, context, DEFAULT_PARSER);
}
/**
* Evaluates the given value against the given context as a string using the given parser.
*/
public static String evaluate(CharSequence value, EvaluationContext context, ExpressionParser parser) {
return evaluate(value, context, String.class, parser);
}
/**
* Evaluates the given value against the given context as an object of the given class.
*/
public static <T> T evaluate(CharSequence value, EvaluationContext context, Class<T> clazz) {
return evaluate(value, context, clazz, DEFAULT_PARSER);
}
/**
* Evaluates the given value against the given context as an object of the given class using the given parser.
*/
public static <T> T evaluate(CharSequence value, EvaluationContext context, Class<T> clazz, ExpressionParser parser) {
Expression expression = parser.parseExpression(value.toString(), ParserContext.TEMPLATE_EXPRESSION);
return expression.getValue(context, clazz);
}
}