001 /*
002 // $Id: //open/mondrian-release/3.0/src/main/mondrian/rolap/GroupingSetsCollector.java#2 $
003 // This software is subject to the terms of the Common Public License
004 // Agreement, available at the following URL:
005 // http://www.opensource.org/licenses/cpl.html.
006 // Copyright (C) 2004-2007 Julian Hyde and others
007 // All Rights Reserved.
008 // You must accept the terms of that agreement to use this software.
009 */
010 package mondrian.rolap;
011
012 import mondrian.rolap.agg.GroupingSet;
013
014 import java.util.ArrayList;
015 import java.util.List;
016
017 /**
018 * <p>The <code>GroupingSetsCollector</code> collects the GroupinpSets and pass
019 * the consolidated list to form group by grouping sets sql</p>
020 *
021 * @author Thiyagu
022 * @version $Id: //open/mondrian-release/3.0/src/main/mondrian/rolap/GroupingSetsCollector.java#2 $
023 * @since 06-Jun-2007
024 */
025 public class GroupingSetsCollector {
026
027 private final boolean useGroupingSets;
028
029 private ArrayList<GroupingSet> groupingSets = new ArrayList<GroupingSet>();
030
031 public GroupingSetsCollector(boolean useGroupingSets) {
032 this.useGroupingSets = useGroupingSets;
033 }
034
035 public boolean useGroupingSets() {
036 return useGroupingSets;
037 }
038
039 public void add(GroupingSet aggInfo) {
040 assert groupingSets.isEmpty() ||
041 groupingSets.get(0).getColumns().length >= aggInfo.getColumns().length;
042 groupingSets.add(aggInfo);
043 }
044
045 public List<GroupingSet> getGroupingSets() {
046 return groupingSets;
047 }
048 }