/*
***************************************************************************************
* Copyright (C) 2006 EsperTech, Inc. All rights reserved. *
* http://www.espertech.com/esper *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
***************************************************************************************
*/
package com.espertech.esper.epl.agg.rollup;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class GroupByRollupNodeGroupingSet extends GroupByRollupNodeBase {
public GroupByRollupNodeGroupingSet() {
}
public List<int[]> evaluate(GroupByRollupEvalContext context) throws GroupByRollupDuplicateException {
List<int[]> rollup = new ArrayList<int[]>();
for (GroupByRollupNodeBase node : this.getChildNodes()) {
List<int[]> result = node.evaluate(context);
// find dups
for (int[] row : result) {
for (int[] existing : rollup) {
if (Arrays.equals(row, existing)) {
throw new GroupByRollupDuplicateException(row);
}
}
}
rollup.addAll(result);
}
return rollup;
}
}