package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition; import java.sql.Types; import java.util.List; public class IndexedColumnFactory { static IndexedColumn create(List<Object[]> rows, int colIx, ColumnDisplayDefinition colDef) { switch(colDef.getSqlType()) { case Types.INTEGER: case Types.BIGINT: case Types.SMALLINT: return new IntegerIndexedColumn(rows, colIx,colDef); case Types.DOUBLE: case Types.DECIMAL: case Types.FLOAT: case Types.NUMERIC: return new DoubleIndexedColumn(rows, colIx,colDef); case Types.TIME: case Types.TIMESTAMP: case Types.DATE: return new TimestampIndexedColumn(rows, colIx,colDef); case Types.BIT: case Types.BOOLEAN: return new BooleanIndexedColumn(rows, colIx,colDef); default: return new StringIndexedColumn(rows, colIx,colDef); } } public static boolean isSumable(ColumnDisplayDefinition columnDisplayDefinition) { switch(columnDisplayDefinition.getSqlType()) { case Types.INTEGER: case Types.BIGINT: case Types.SMALLINT: case Types.DOUBLE: case Types.DECIMAL: case Types.FLOAT: case Types.NUMERIC: return true; default: return false; } } public static boolean isOrderable(ColumnDisplayDefinition columnDisplayDefinition) { switch(columnDisplayDefinition.getSqlType()) { case Types.INTEGER: case Types.BIGINT: case Types.SMALLINT: case Types.DOUBLE: case Types.DECIMAL: case Types.FLOAT: case Types.NUMERIC: case Types.TIME: case Types.TIMESTAMP: case Types.DATE: case Types.BIT: case Types.BOOLEAN: return true; default: return false; } } }