/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics;
import java.util.Collections;
import java.util.List;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.opengamma.util.ArgumentChecker;
/**
* Collection of {@link GridColumnGroup}s that make up the columns in a grid.
*/
public class GridColumnGroups {
/** The columns from all the groups. */
private final List<GridColumn> _columns;
/** The column groups. */
private final List<GridColumnGroup> _columnGroups;
/* package */ GridColumnGroups(List<GridColumnGroup> columnGroups) {
ArgumentChecker.notNull(columnGroups, "columnGroups");
List<GridColumn> columns = Lists.newArrayList();
for (GridColumnGroup group : columnGroups) {
columns.addAll(group.getColumns());
}
_columns = Collections.unmodifiableList(columns);
_columnGroups = ImmutableList.copyOf(columnGroups);
}
/* package */ GridColumnGroups(GridColumnGroup columnGroup) {
this(Lists.newArrayList(columnGroup));
}
/**
* @return A instance containing no column groups
*/
/* package */ static GridColumnGroups empty() {
return new GridColumnGroups(Collections.<GridColumnGroup>emptyList());
}
/**
* @return Total number of columns in all column groups
*/
public int getColumnCount() {
return _columns.size();
}
/**
* Returns the column at an index
* @param index The column index, zero based
* @return The column at the specified index
*/
public GridColumn getColumn(int index) {
return _columns.get(index);
}
/**
* @return The column groups in the order they should be displayed
*/
public List<GridColumnGroup> getGroups() {
return _columnGroups;
}
/* package */ List<GridColumn> getColumns() {
return _columns;
}
@Override
public String toString() {
return "AnalyticsColumnGroups [_columns=" + _columns + ", _columnGroups=" + _columnGroups + "]";
}
}