package com.ycsoft.report.query.sql.cubesql; import java.util.List; import com.ycsoft.commons.exception.ReportException; import com.ycsoft.report.query.cube.CubeHeadCell; import com.ycsoft.report.query.cube.Dimension; import com.ycsoft.report.query.cube.DimensionRolap; import com.ycsoft.report.query.cube.Measure; /** * cube变换内部sql组装工厂 */ public interface AnalyseCubeSql { /** * 获取基础表头、原始表头 * 后续数据计算的依据 * @return */ public CubeHeadCell[] getBaseHeadCells(); /** * 获得cube变换组装后的取值sql * @param sql * @return */ public String getAnalyseSql(String sql) ; public void appendSelect(DimensionRolap dimcon); /** * 无纵向维装载度量 * @param measures */ public void appendSelect(List<Measure> measures) ; /** * 设置纵向维和度量 * * @throws ReportException */ public void appendSelect(DimensionRolap dimcon, List<Measure> defalutMeasures, String pid, int level,boolean isgraph) throws ReportException ; /** * 维度表 * @param crossDim */ public void appendFrom(Dimension dim) ; /** * 装载where 条件 * * @param crossDim * @throws ReportException */ public void appendWhere(DimensionRolap dimcon) throws ReportException ; /** * 多级装载横向维 * @param dimcon */ public void appendGroup(DimensionRolap dimcon); public void appendOrderBy(DimensionRolap dimcon) ; }