package com.ho.common.tools.util;

import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

/**
 * 通过Aviator工具解析公式
 */
@Slf4j
public class AviatorUtils {

    /**
     * 解析公式
     * @param context 参数集
     * @param expression 公式表达式
     * @return
     */
    public static Object analysisFormula(Map<String, Object> context,String expression){
        Expression compiledExp = AviatorEvaluator.compile(expression);
        //通过注入的上下文执行
        Object result = compiledExp.execute(context);
        return result;
    }
}
