diff --git a/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/AbstractDataSet.java b/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/AbstractDataSet.java index 4556b594ede8ed752b4f268f7bee89f7909d67f7..c981f79d48e1e9710e5501cf924673ccc631aa62 100644 --- a/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/AbstractDataSet.java +++ b/org.tinygroup.tinyscript.dataset/src/main/java/org/tinygroup/tinyscript/dataset/AbstractDataSet.java @@ -107,23 +107,24 @@ public abstract class AbstractDataSet implements DataSet { public int getActualIndex(int index) { return isIndexFromOne() ? index - 1 : index; } - - public String toString(){ + + public String toString() { StringBuilder sb = new StringBuilder(); - try{ - for(Field f:getFields()){ + try { + for (Field f : getFields()) { sb.append(f.getName()).append(" "); } sb.append("\n"); - for(int i=0;i getGroups(); - + /** * 创建聚合结果 + * * @param aggregateName */ public abstract void createAggregateResult(String aggregateName); - + /** * 获取聚合结果 + * * @param row * @param aggregateName * @return */ - public abstract T getData(int row,String aggregateName); - + public abstract T getData(int row, String aggregateName); + /** * 设置聚合结果 + * * @param row * @param aggregateName * @param value */ - public abstract void setData(int row,String aggregateName,T value); - + public abstract void setData(int row, String aggregateName, T value); + /** * 拆分分组数据 + * * @param beginIndex * @param endIndex * @return */ - public abstract GroupDataSet subGroup(int beginIndex,int endIndex) throws Exception; - + public abstract GroupDataSet subGroup(int beginIndex, int endIndex) throws Exception; + /** * 拆分分组数据 + * * @param beginIndex * @return */ public abstract GroupDataSet subGroup(int beginIndex) throws Exception; - - + public abstract List getAggregateResultList() throws Exception; - + /** * 合并分组数据,返回一般数据集 + * * @return * @throws Exception */ public abstract DataSet merge() throws Exception; - + + @Override + public String toString() { + List list; + List dataSets = getGroups(); + try { + list = getAggregateResultList(); + } catch (Exception e) { + throw new RuntimeException(e); + } + + StringBuilder sb = new StringBuilder(); + for (int k = 0; k < dataSets.size(); k++) { + try { + for (Field f : dataSets.get(k).getFields()) { + sb.append(f.getName()).append(" "); + } + for (AggregateResult result : list) { + sb.append(result.getName()).append(" "); + } + sb.append("\n"); + for (int i = 0; i < dataSets.get(k).getRows(); i++) { + for (int j = 0; j < dataSets.get(k).getColumns(); j++) { + sb.append(dataSets.get(k).getData(getShowIndex(i), getShowIndex(j))).append(" "); + } + for (AggregateResult result : list) { + sb.append(result.getData(k)).append(" "); + } + sb.append("\n"); + } + } catch (Exception e) { + // 可能会抛出异常 + throw new RuntimeException(e); + } + } + + return sb.toString(); + } + }