package com.ycsoft.commons.expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
/**
* 表达式处理单元
*
* @author liujiaqi
*
*/
@Deprecated
public class ExpUnit {
private StandardEvaluationContext context = new StandardEvaluationContext();
private ExpressionParser parser = new SpelExpressionParser();
public StandardEvaluationContext getContext() {
return context;
}
public ExpressionParser getParser() {
return parser;
}
/**
* 返回指定类型的表达式结果
*
* @param <T>
* 返回类型
* @param exp
* 表达式
* @param resultType
* @return
*/
public <T> T getVariable(String exp, Class<T> resultType) {
return parser.parseExpression(exp).getValue(context, resultType);
}
public String getVariable(String exp) {
return getVariable(exp, String.class);
}
/**
* 返回Boolean类型的表达式结果
*
* @param exp
* 表达式
* @return
*/
public boolean parseBoolean(String exp) {
return getVariable(exp, Boolean.class);
}
public void setContext(StandardEvaluationContext context) {
this.context = context;
}
public void setParser(ExpressionParser parser) {
this.parser = parser;
}
public void setVariable(Object variables) {
context.setRootObject(variables);
}
/**
* 将变量加入表达式容器 以#varname的方式调用
*
* @param varname
* @param value
*/
public void setVariable(String varname, Object value) {
context.setVariable(varname, value);
}
}