package com.smtaiserver.smtaiserver.javaai.ast; import java.util.HashSet; import java.util.Set; import org.apache.ibatis.ognl.Ognl; import org.dom4j.Element; import com.smtaiserver.smtaiserver.core.SMTAIServerApp; import com.smtaiserver.smtaiserver.javaai.metrics.base.SMTDimensionDef; import com.smtservlet.util.SMTStatic; public class ASTEvalColInfo { public String _id; public Object _evalBin; public Set _setDimDef= new HashSet<>(); public ASTEvalColInfo(Element xmlEvalColInfo) throws Exception { _id = SMTStatic.getXmlAttr(xmlEvalColInfo, "id"); String evalFmt = SMTStatic.getXmlAttr(xmlEvalColInfo, "eval"); String evalCode = SMTStatic.stringFormat(evalFmt, new SMTStatic.StringNamedNotify() { @Override public Object getNamedValue(String name, Object[] args) throws Exception { String[] sp = name.split("\\$"); SMTDimensionDef dimDef = SMTAIServerApp.getApp().getDimensionDef(sp[1]); _setDimDef.add(dimDef); return name; } }); _evalBin = Ognl.parseExpression(evalCode); } }