diff options
Diffstat (limited to 'src/share/classes/java/sql/JDBCType.java')
-rw-r--r-- | src/share/classes/java/sql/JDBCType.java | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/src/share/classes/java/sql/JDBCType.java b/src/share/classes/java/sql/JDBCType.java new file mode 100644 index 0000000000..f145305960 --- /dev/null +++ b/src/share/classes/java/sql/JDBCType.java @@ -0,0 +1,251 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.sql; + +/** + * <P>Defines the constants that are used to identify generic + * SQL types, called JDBC types. + * <p> + * @see SQLType + * @since 1.8 + */ +public enum JDBCType implements SQLType { + + /** + * Identifies the generic SQL type {@code BIT}. + */ + BIT(Types.BIT), + /** + * Identifies the generic SQL type {@code TINYINT}. + */ + TINYINT(Types.TINYINT), + /** + * Identifies the generic SQL type {@code SMALLINT}. + */ + SMALLINT(Types.SMALLINT), + /** + * Identifies the generic SQL type {@code INTEGER}. + */ + INTEGER(Types.INTEGER), + /** + * Identifies the generic SQL type {@code BIGINT}. + */ + BIGINT(Types.BIGINT), + /** + * Identifies the generic SQL type {@code FLOAT}. + */ + FLOAT(Types.FLOAT), + /** + * Identifies the generic SQL type {@code REAL}. + */ + REAL(Types.REAL), + /** + * Identifies the generic SQL type {@code DOUBLE}. + */ + DOUBLE(Types.DOUBLE), + /** + * Identifies the generic SQL type {@code NUMERIC}. + */ + NUMERIC(Types.NUMERIC), + /** + * Identifies the generic SQL type {@code DECIMAL}. + */ + DECIMAL(Types.DECIMAL), + /** + * Identifies the generic SQL type {@code CHAR}. + */ + CHAR(Types.CHAR), + /** + * Identifies the generic SQL type {@code VARCHAR}. + */ + VARCHAR(Types.VARCHAR), + /** + * Identifies the generic SQL type {@code LONGVARCHAR}. + */ + LONGVARCHAR(Types.LONGVARCHAR), + /** + * Identifies the generic SQL type {@code DATE}. + */ + DATE(Types.DATE), + /** + * Identifies the generic SQL type {@code TIME}. + */ + TIME(Types.TIME), + /** + * Identifies the generic SQL type {@code TIMESTAMP}. + */ + TIMESTAMP(Types.TIMESTAMP), + /** + * Identifies the generic SQL type {@code BINARY}. + */ + BINARY(Types.BINARY), + /** + * Identifies the generic SQL type {@code VARBINARY}. + */ + VARBINARY(Types.VARBINARY), + /** + * Identifies the generic SQL type {@code LONGVARBINARY}. + */ + LONGVARBINARY(Types.LONGVARBINARY), + /** + * Identifies the generic SQL value {@code NULL}. + */ + NULL(Types.NULL), + /** + * Indicates that the SQL type + * is database-specific and gets mapped to a Java object that can be + * accessed via the methods getObject and setObject. + */ + OTHER(Types.OTHER), + /** + * Indicates that the SQL type + * is database-specific and gets mapped to a Java object that can be + * accessed via the methods getObject and setObject. + */ + JAVA_OBJECT(Types.JAVA_OBJECT), + /** + * Identifies the generic SQL type {@code DISTINCT}. + */ + DISTINCT(Types.DISTINCT), + /** + * Identifies the generic SQL type {@code STRUCT}. + */ + STRUCT(Types.STRUCT), + /** + * Identifies the generic SQL type {@code ARRAY}. + */ + ARRAY(Types.ARRAY), + /** + * Identifies the generic SQL type {@code BLOB}. + */ + BLOB(Types.BLOB), + /** + * Identifies the generic SQL type {@code CLOB}. + */ + CLOB(Types.CLOB), + /** + * Identifies the generic SQL type {@code REF}. + */ + REF(Types.REF), + /** + * Identifies the generic SQL type {@code DATALINK}. + */ + DATALINK(Types.DATALINK), + /** + * Identifies the generic SQL type {@code BOOLEAN}. + */ + BOOLEAN(Types.BOOLEAN), + + /* JDBC 4.0 Types */ + + /** + * Identifies the SQL type {@code ROWID}. + */ + ROWID(Types.ROWID), + /** + * Identifies the generic SQL type {@code NCHAR}. + */ + NCHAR(Types.NCHAR), + /** + * Identifies the generic SQL type {@code NVARCHAR}. + */ + NVARCHAR(Types.NVARCHAR), + /** + * Identifies the generic SQL type {@code LONGNVARCHAR}. + */ + LONGNVARCHAR(Types.LONGNVARCHAR), + /** + * Identifies the generic SQL type {@code NCLOB}. + */ + NCLOB(Types.NCLOB), + /** + * Identifies the generic SQL type {@code SQLXML}. + */ + SQLXML(Types.SQLXML), + + /* JDBC 4.2 Types */ + + /** + * Identifies the generic SQL type {@code REF_CURSOR}. + */ + REF_CURSOR(Types.REF_CURSOR); + + /** + * The Integer value for the JDBCType. It maps to a value in + * {@code Types.java} + */ + private Integer type; + + /** + * Constructor to specify the data type value from {@code Types) for + * this data type. + * @param type The value from {@code Types) for this data type + */ + JDBCType(final Integer type) { + this.type = type; + } + + /** + * Returns the name of the data type. + * @return The name of the data type. + */ + public String getName() { + return name(); + } + /** + * Returns the name of the vendor that supports this data type. + * @return The name of the vendor for this data type which is + * {@literal java.sql} for JDBCType. + */ + public String getVendor() { + return "java.sql"; + } + + /** + * Returns the vendor specific type number for the data type. + * @return An Integer representing the data type. For {@code JDBCType}, + * the value will be the same value as in {@code Types} for the data type. + */ + public Integer getVendorTypeNumber() { + return type; + } + /** + * Returns the {@code JDBCType} that corresponds to the specified + * {@code Types} value + * @param type {@code Types} value + * @return The {@code JDBCType} constant + * @throws IllegalArgumentException if this enum type has no constant with + * the specified {@code Types} value + * @see Types + */ + public static JDBCType valueOf(int type) { + for( JDBCType sqlType : JDBCType.class.getEnumConstants()) { + if(type == sqlType.type) + return sqlType; + } + throw new IllegalArgumentException("Type:" + type + " is not a valid " + + "Types.java value."); + } +} |