package org.gcube.data.analysis.tabulardata.cube; import java.util.Collection; import org.gcube.data.analysis.tabulardata.cube.exceptions.NoSuchTableException; import org.gcube.data.analysis.tabulardata.cube.tablemanagers.TableCreator; import org.gcube.data.analysis.tabulardata.cube.tablemanagers.TableMetaCreator; import org.gcube.data.analysis.tabulardata.model.column.Column; import org.gcube.data.analysis.tabulardata.model.column.ColumnLocalId; import org.gcube.data.analysis.tabulardata.model.metadata.common.ValidationsMetadata; import org.gcube.data.analysis.tabulardata.model.table.Table; import org.gcube.data.analysis.tabulardata.model.table.TableId; import org.gcube.data.analysis.tabulardata.model.table.TableType; import org.gcube.data.analysis.tabulardata.model.time.PeriodType; /** * The cube manager holds * information on statistical data (datasets, codelists, hierarchical codelists, transformation mappings) * and allows to perform several actions on database resources: * * * @author "Luigi Fortunati" * */ public interface CubeManager { public TableCreator createTable(TableType type); public TableMetaCreator modifyTableMeta(TableId tableId) throws NoSuchTableException; public Collection getTables(); public Collection
getTables(TableType tableType); public Table getTimeTable(PeriodType periodType) throws NoSuchTableException; public Table getTable(TableId id) throws NoSuchTableException; public void removeTable(TableId id) throws NoSuchTableException; //public Table createTimeCodelist(PeriodType periodType); public Table removeValidations(TableId id) throws NoSuchTableException; public Table removeColumn(TableId id, ColumnLocalId localId) throws NoSuchTableException; public Table addValidations(TableId id, ValidationsMetadata tableValidationMetadata, Column ... validationColumns ) throws NoSuchTableException; public Table addValidations(TableId id, Column ... validationColumns ) throws NoSuchTableException; public Table exchangeColumnPosition(TableId tableId, ColumnLocalId columnId, int newPosition ) throws NoSuchTableException; }