cube-manager/cube-manager/src/main/java/org/gcube/data/analysis/tabulardata/cube/tablemanagers/codelist/CodelistCreator.java

41 lines
1.8 KiB
Java

package org.gcube.data.analysis.tabulardata.cube.tablemanagers.codelist;
import java.util.Collection;
import java.util.List;
import javax.enterprise.event.Event;
import org.gcube.data.analysis.tabulardata.cube.data.DatabaseWrangler;
import org.gcube.data.analysis.tabulardata.cube.events.TableCreationEvent;
import org.gcube.data.analysis.tabulardata.cube.metadata.CubeMetadataWrangler;
import org.gcube.data.analysis.tabulardata.cube.tablemanagers.DefaultTableCreator;
import org.gcube.data.analysis.tabulardata.cube.tablemanagers.TableManager;
import org.gcube.data.analysis.tabulardata.model.column.Column;
import org.gcube.data.analysis.tabulardata.model.column.ColumnType;
import org.gcube.data.analysis.tabulardata.model.column.type.CodeColumnType;
import org.gcube.data.analysis.tabulardata.model.column.type.CodeDescriptionColumnType;
import org.gcube.data.analysis.tabulardata.model.column.type.CodeNameColumnType;
import org.gcube.data.analysis.tabulardata.model.column.type.IdColumnType;
import org.gcube.data.analysis.tabulardata.model.table.type.CodelistTableType;
import com.google.common.collect.Lists;
public class CodelistCreator extends DefaultTableCreator {
public CodelistCreator(DatabaseWrangler dw, CubeMetadataWrangler cmw, TableManager tm, Event<TableCreationEvent> tableCreatedEvent) {
super(dw, cmw, tm, new CodelistTableType(), tableCreatedEvent);
}
private static List<ColumnType> indexedColumnTypes = Lists.newArrayList(new IdColumnType(), new CodeColumnType(),
new CodeNameColumnType(), new CodeDescriptionColumnType());
@Override
protected void addIndexes(String tableName, Collection<Column> columns) {
for (Column column : columns) {
if (indexedColumnTypes.contains(column.getColumnType()))
dbWrangler.createIndex(tableName, column.getName());
}
}
}