package org.molgenis.matrix.component; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.WordUtils; import org.molgenis.fieldtypes.FieldType; import org.molgenis.pheno.Measurement; import org.molgenis.protocol.Protocol; public class Column { private Protocol protocol; private Measurement measurement; // TODO: remove enum and replace by datatype that is a MolgenisType @Deprecated public enum ColumnType { DATE("date"), TIMESTAMP("timestamp"), DATETIME("datetime"), INTEGER("int", false), DECIMAL("decimal", false), STRING( "string"), CODE("code", false); private String name; private boolean quote = true; ColumnType(String name) { this.name = name; } ColumnType(String name, boolean quote) { this.name = name; this.quote = quote; } public boolean isQuote() { return quote; } @Override public String toString() { return name; } }; public Column(Protocol protocol, Measurement measurement) { this.protocol = protocol; this.measurement = measurement; } public String getName() { return measurement.getName(); } public ColumnType getType() { // measurement.g return getColumnType(measurement.getDataType()); } public Protocol getProtocol() { return protocol; } public Measurement getMeasurement() { return measurement; } @Deprecated public static ColumnType getColumnType(String column) { String columnType = WordUtils.capitalize(column); if (columnType.startsWith("NUMMER") || columnType.startsWith("NUMBER")) { final int decimalPrecision = Integer.parseInt(StringUtils.substringBetween(columnType, ",", ")")); // final int precision = // Integer.parseInt(StringUtils.substringBetween(columnType, "(", // ",")); if (decimalPrecision == 0) { return ColumnType.INTEGER; } else { return ColumnType.DECIMAL; } } else if (columnType.startsWith("DATUM") || columnType.startsWith("DATE")) { return ColumnType.DATE; } else if (columnType.startsWith("TEKST") || columnType.startsWith("TEXT")) { return ColumnType.STRING; } else if (columnType.startsWith("CODE")) { return ColumnType.CODE; } try { return ColumnType.valueOf(columnType); } catch (Exception ex) { if (columnType.equals("int")) { return ColumnType.INTEGER; } } return ColumnType.STRING; } }