public static <T> DataType<T> getDataType(SQLDialect dialect, Class<? extends T> type) { switch (dialect) { case ASE: return ASEDataType.getDataType(type); case CUBRID: return CUBRIDDataType.getDataType(type); case DB2: return DB2DataType.getDataType(type); case DERBY: return DerbyDataType.getDataType(type); case H2: return H2DataType.getDataType(type); case HSQLDB: return HSQLDBDataType.getDataType(type); case INGRES: return IngresDataType.getDataType(type); case MYSQL: return MySQLDataType.getDataType(type); case ORACLE: return OracleDataType.getDataType(type); case POSTGRES: return PostgresDataType.getDataType(type); case SQLITE: return SQLiteDataType.getDataType(type); case SQLSERVER: return SQLServerDataType.getDataType(type); case SYBASE: return SybaseDataType.getDataType(type); // Default behaviour is needed for hashCode() and toString(); default: return SQLDataType.getDataType(null, type); } }