/* * Copyright (C) Lennart Martens * * Contact: lennart.martens AT UGent.be (' AT ' to be replaced with '@') */ /* * Created by IntelliJ IDEA. * User: Lennart * Date: 24-dec-02 * Time: 16:30:42 */ package com.compomics.util.db; import org.apache.log4j.Logger; import java.sql.Types; /* * CVS information: * * $Revision: 1.3 $ * $Date: 2007/07/06 09:41:53 $ */ /** * This class converts column types into Strings representing * corresponding Java types. * * @author Lennart Martens */ public class ColumnTypeConverter { // Class specific log4j logger for ColumnTypeConverter instances. Logger logger = Logger.getLogger(ColumnTypeConverter.class); /** * This method converts coded SQL columntypes into * the corresponding Java objects (whose names are given * int the String[] elements). * * @param aTypes int[] with the coded SQL column types. * @param aSizes int[] with the char/String type. * @return String[] with the names of the Java types. */ public static String[] convertTypes(int[] aTypes, int[] aSizes) { String[] types = new String[aTypes.length]; for(int i=0;i<aTypes.length;i++) { String temp = null; switch(aTypes[i]) { case Types.ARRAY: temp = "byte[]"; break; case Types.BIGINT: temp = "long"; break; case Types.BINARY: temp = "byte[]"; break; case Types.BIT: temp = "boolean"; break; case Types.BLOB: temp = "byte[]"; break; case Types.CHAR: if(aSizes[i] == 1) { temp = "char"; } else { temp = "String"; } break; case Types.CLOB: temp = "String"; break; case Types.DATE: temp = "java.sql.Timestamp"; break; case Types.DECIMAL: temp = "Number"; break; case Types.DISTINCT: temp = "byte[]"; break; case Types.DOUBLE: temp = "double"; break; case Types.FLOAT: temp = "double"; break; case Types.INTEGER: temp = "long"; break; case Types.JAVA_OBJECT: temp = "Object"; break; case Types.LONGVARBINARY: temp = "byte[]"; break; case Types.LONGVARCHAR: temp = "String"; break; case Types.NULL: temp = "null"; break; case Types.NUMERIC: temp = "Number"; break; case Types.OTHER: temp = "Object"; break; case Types.REAL: temp = "double"; break; case Types.REF: temp = "String"; break; case Types.SMALLINT: temp = "int"; break; case Types.STRUCT: temp = "Object"; break; case Types.TIME: temp = "java.sql.Time"; break; case Types.TIMESTAMP: temp = "java.sql.Timestamp"; break; case Types.TINYINT: temp = "int"; break; case Types.VARBINARY: temp = "byte[]"; break; case Types.VARCHAR: temp = "String"; break; default : break; } types[i] = temp; } return types; } }