/**
* Copyright 2006-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mybatis.generator.internal.types;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
/**
* TODO - Delete Me
*
* @author Jeff Butler
*/
public class JdbcTypeNameTranslator {
private static Map<Integer, String> typeToName;
private static Map<String, Integer> nameToType;
static {
typeToName = new HashMap<Integer, String>();
typeToName.put(Types.ARRAY, "ARRAY"); //$NON-NLS-1$
typeToName.put(Types.BIGINT, "BIGINT"); //$NON-NLS-1$
typeToName.put(Types.BINARY, "BINARY"); //$NON-NLS-1$
typeToName.put(Types.BIT, "BIT"); //$NON-NLS-1$
typeToName.put(Types.BLOB, "BLOB"); //$NON-NLS-1$
typeToName.put(Types.BOOLEAN, "BOOLEAN"); //$NON-NLS-1$
typeToName.put(Types.CHAR, "CHAR"); //$NON-NLS-1$
typeToName.put(Types.CLOB, "CLOB"); //$NON-NLS-1$
typeToName.put(Types.DATALINK, "DATALINK"); //$NON-NLS-1$
typeToName.put(Types.DATE, "DATE"); //$NON-NLS-1$
typeToName.put(Types.DECIMAL, "DECIMAL"); //$NON-NLS-1$
typeToName.put(Types.DISTINCT, "DISTINCT"); //$NON-NLS-1$
typeToName.put(Types.DOUBLE, "DOUBLE"); //$NON-NLS-1$
typeToName.put(Types.FLOAT, "FLOAT"); //$NON-NLS-1$
typeToName.put(Types.INTEGER, "INTEGER"); //$NON-NLS-1$
typeToName.put(Types.JAVA_OBJECT, "JAVA_OBJECT"); //$NON-NLS-1$
typeToName.put(Types.LONGVARBINARY, "LONGVARBINARY"); //$NON-NLS-1$
typeToName.put(Types.LONGVARCHAR, "LONGVARCHAR"); //$NON-NLS-1$
typeToName.put(Types.NCHAR, "NCHAR"); //$NON-NLS-1$
typeToName.put(Types.NCLOB, "NCLOB"); //$NON-NLS-1$
typeToName.put(Types.NVARCHAR, "NVARCHAR"); //$NON-NLS-1$
typeToName.put(Types.LONGNVARCHAR, "LONGNVARCHAR"); //$NON-NLS-1$
typeToName.put(Types.NULL, "NULL"); //$NON-NLS-1$
typeToName.put(Types.NUMERIC, "NUMERIC"); //$NON-NLS-1$
typeToName.put(Types.OTHER, "OTHER"); //$NON-NLS-1$
typeToName.put(Types.REAL, "REAL"); //$NON-NLS-1$
typeToName.put(Types.REF, "REF"); //$NON-NLS-1$
typeToName.put(Types.SMALLINT, "SMALLINT"); //$NON-NLS-1$
typeToName.put(Types.STRUCT, "STRUCT"); //$NON-NLS-1$
typeToName.put(Types.TIME, "TIME"); //$NON-NLS-1$
typeToName.put(Types.TIMESTAMP, "TIMESTAMP"); //$NON-NLS-1$
typeToName.put(Types.TINYINT, "TINYINT"); //$NON-NLS-1$
typeToName.put(Types.VARBINARY, "VARBINARY"); //$NON-NLS-1$
typeToName.put(Types.VARCHAR, "VARCHAR"); //$NON-NLS-1$
nameToType = new HashMap<String, Integer>();
nameToType.put("ARRAY", Types.ARRAY); //$NON-NLS-1$
nameToType.put("BIGINT", Types.BIGINT); //$NON-NLS-1$
nameToType.put("BINARY", Types.BINARY); //$NON-NLS-1$
nameToType.put("BIT", Types.BIT); //$NON-NLS-1$
nameToType.put("BLOB", Types.BLOB); //$NON-NLS-1$
nameToType.put("BOOLEAN", Types.BOOLEAN); //$NON-NLS-1$
nameToType.put("CHAR", Types.CHAR); //$NON-NLS-1$
nameToType.put("CLOB", Types.CLOB); //$NON-NLS-1$
nameToType.put("DATALINK", Types.DATALINK); //$NON-NLS-1$
nameToType.put("DATE", Types.DATE); //$NON-NLS-1$
nameToType.put("DECIMAL", Types.DECIMAL); //$NON-NLS-1$
nameToType.put("DISTINCT", Types.DISTINCT); //$NON-NLS-1$
nameToType.put("DOUBLE", Types.DOUBLE); //$NON-NLS-1$
nameToType.put("FLOAT", Types.FLOAT); //$NON-NLS-1$
nameToType.put("INTEGER", Types.INTEGER); //$NON-NLS-1$
nameToType.put("JAVA_OBJECT", Types.JAVA_OBJECT); //$NON-NLS-1$
nameToType.put("LONGVARBINARY", Types.LONGVARBINARY); //$NON-NLS-1$
nameToType.put("LONGVARCHAR", Types.LONGVARCHAR); //$NON-NLS-1$
nameToType.put("NCHAR", Types.NCHAR); //$NON-NLS-1$
nameToType.put("NCLOB", Types.NCLOB); //$NON-NLS-1$
nameToType.put("NVARCHAR", Types.NVARCHAR); //$NON-NLS-1$
nameToType.put("LONGNVARCHAR", Types.LONGNVARCHAR); //$NON-NLS-1$
nameToType.put("NULL", Types.NULL); //$NON-NLS-1$
nameToType.put("NUMERIC", Types.NUMERIC); //$NON-NLS-1$
nameToType.put("OTHER", Types.OTHER); //$NON-NLS-1$
nameToType.put("REAL", Types.REAL); //$NON-NLS-1$
nameToType.put("REF", Types.REF); //$NON-NLS-1$
nameToType.put("SMALLINT", Types.SMALLINT); //$NON-NLS-1$
nameToType.put("STRUCT", Types.STRUCT); //$NON-NLS-1$
nameToType.put("TIME", Types.TIME); //$NON-NLS-1$
nameToType.put("TIMESTAMP", Types.TIMESTAMP); //$NON-NLS-1$
nameToType.put("TINYINT", Types.TINYINT); //$NON-NLS-1$
nameToType.put("VARBINARY", Types.VARBINARY); //$NON-NLS-1$
nameToType.put("VARCHAR", Types.VARCHAR); //$NON-NLS-1$
}
/**
* Utility Class - no instances
*/
private JdbcTypeNameTranslator() {
super();
}
/**
* Translates from a java.sql.Types values to the proper iBATIS string
* representation of the type.
*
* @param jdbcType
* a value from java.sql.Types
* @return the iBATIS String representation of a JDBC type
*/
public static String getJdbcTypeName(int jdbcType) {
String answer = typeToName.get(jdbcType);
if (answer == null) {
answer = "OTHER"; //$NON-NLS-1$
}
return answer;
}
/**
* Translates from the string representation of the type to the
* java.sql.Types value.
*
* @param jdbcTypeName
* the iBATIS String representation of a JDBC type
* @return a value from java.sql.Types
*/
public static int getJdbcType(String jdbcTypeName) {
Integer answer = nameToType.get(jdbcTypeName);
if (answer == null) {
answer = Types.OTHER;
}
return answer;
}
}