package com.ycsoft.report.query.cube; /*********************************************************************** * Module: CubeExec.java * Author: new * Purpose: Defines the Interface CubeExec ***********************************************************************/ import java.util.List; import java.util.Map; import com.ycsoft.commons.exception.ReportException; import com.ycsoft.report.query.cube.graph.CubeGraph; /** * cube计算接口 T cube基础数据集 * * @pdOid 4636492c-d859-4949-9168-a3b8fcdf6701 */ public interface CubeExec { /** * 计算图形数据结构 * 参数 mea 计算用指标 * 参数 rolaps 计算用维度清单 * @param t * @param graph * @return * @throws ReportException */ CubeGraph executeGraph(CubeDataSet dataset,CubeGraph graph) throws ReportException; /** * 使用的度量清单 */ List<Measure> getMeasures(); /** * 默认配置的度量清单 * @return */ List<Measure> getDefaultMeasures(); /** * 维设置清单 按有效横向维,有效纵向维,无效维排序 */ List<DimensionRolap> getDimensionRolaps(); DimensionRolap getDimensionRolap(Dimension dim); /** * 展开一个维 * * @param dim */ void expandDimension(Dimension dim); /** * 收缩一个维度 * * @param dim */ void shrinkDimension(Dimension dim); /** * 维度切片过滤 切片值: Map<level,value> level表示哪一层切片 value表示该层切片值 * * @param dim * @param levelvalueMap */ void slicesDimension(Dimension dim, Integer level, String... values) throws ReportException; /** * 维度某一个层级的自定义排序 * @param dim * @param level * @param values * @throws ReportException */ void sortDimension(Dimension dim, Map<Integer,String[]> sortmap)throws ReportException; /** * 维选择 vertdim 纵向维 dims 维清单 * * @param vertdim * @param dims * @throws ReportException */ void selectDimension(Dimension vertdim, Dimension... dims) throws ReportException; /** * 指标选择 * * @param meas * @throws ReportException */ void selectMeasure(String... meas) throws ReportException; /** * 配置维度分组统计 * * @param dim * @param levels * @throws ReportException */ void configDimensionTotal(Dimension dim, Integer... levels) throws ReportException; /** * 执行计算 */ CubeDataSet execute(CubeDataSet dataset) throws ReportException; /** * 预览,cube转换的样子 */ List<CubeHeadCell[]> preview(List<DimensionRolap> dimrolaps,List<Measure> mealist) throws ReportException; /** * 验证cube配置是否正确。 返回null表示配置正确,其他值表示错误内容 * * @throws ReportException * */ String validate(CubeDataSet dataset) throws ReportException; /** * 获得表头 * * @return * @throws ReportException */ List<CubeHeadCell[]> getCubeHead() throws ReportException; }