com.softicar.platform.common.container.data.table.in.memory.InMemoryDataTableStructure Maven / Gradle / Ivy
Show all versions of platform-common Show documentation
package com.softicar.platform.common.container.data.table.in.memory;
import com.softicar.platform.common.container.data.table.IDataTable;
import com.softicar.platform.common.container.data.table.IDataTableColumn;
import java.util.ArrayList;
import java.util.List;
/**
* Represents the structure of an {@link IDataTable}.
*
* The table structure primarily involves the definition of the table columns
* represented by {@link IDataTableColumn}.
*
* @author Alexander Schmidt
* @author Oliver Richers
*/
public class InMemoryDataTableStructure {
private final List> columns = new ArrayList<>();
/**
* Initiates the creation of a new table column.
*
* If the given class implements the {@link Comparable} interface, this will
* automatically use it for comparison.
*
* @param valueClass
* the value class of the column
* @return a column builder instance
*/
public InMemoryDataTableColumnBuilder.GetterSetter newColumn(Class valueClass) {
return new InMemoryDataTableColumnBuilder<>(this, valueClass).new GetterSetter();
}
public List> getTableColumns() {
return columns;
}
protected IDataTableColumn addColumn(InMemoryDataTableColumnBuilder columnBuilder) {
InMemoryDataTableColumn column = new InMemoryDataTableColumn<>(columnBuilder);
columns.add(column);
return column;
}
}