org.apache.cayenne.dba
Class TypesMapping

java.lang.Object
  extended by org.apache.cayenne.dba.TypesMapping

public class TypesMapping
extends Object

A utility class that handles mappings of JDBC data types to the database types and Java types. Also contains methods that provide information about JDBC types.


Field Summary
protected  Map<Integer,List<org.apache.cayenne.dba.TypesMapping.TypeInfo>> databaseTypes
           
static String JAVA_BIGDECIMAL
           
static String JAVA_BLOB
           
static String JAVA_BOOLEAN
           
static String JAVA_BYTE
           
static String JAVA_BYTES
           
static String JAVA_DOUBLE
           
static String JAVA_FLOAT
           
static String JAVA_INTEGER
           
static String JAVA_LONG
           
static String JAVA_SHORT
           
static String JAVA_SQLDATE
           
static String JAVA_STRING
           
static String JAVA_TIME
           
static String JAVA_TIMESTAMP
           
static String JAVA_UTILDATE
           
static int NOT_DEFINED
           
static String SQL_ARRAY
           
static String SQL_BIGINT
           
static String SQL_BINARY
           
static String SQL_BIT
           
static String SQL_BLOB
           
static String SQL_BOOLEAN
           
static String SQL_CHAR
           
static String SQL_CLOB
           
static String SQL_DATE
           
static String SQL_DECIMAL
           
static String SQL_DOUBLE
           
static String SQL_FLOAT
           
static String SQL_INTEGER
           
static String SQL_LONGVARBINARY
           
static String SQL_LONGVARCHAR
           
static String SQL_NULL
           
static String SQL_NUMERIC
           
static String SQL_OTHER
           
static String SQL_REAL
           
static String SQL_SMALLINT
           
static String SQL_TIME
           
static String SQL_TIMESTAMP
           
static String SQL_TINYINT
           
static String SQL_VARBINARY
           
static String SQL_VARCHAR
           
 
Constructor Summary
TypesMapping(DatabaseMetaData metaData)
           
 
Method Summary
static String[] getDatabaseTypes()
          Returns an array of string names of the default JDBC data types.
static String getJavaBySqlType(int type)
          Get the corresponding Java type by its java.sql.Types counterpart.
static String getSqlNameByType(int type)
          Returns a String representation of the SQL type from its JDBC code.
static int getSqlTypeByJava(Class<?> javaClass)
          Guesses a default JDBC type for the Java class.
static int getSqlTypeByJava(String className)
          Returns default java.sql.Types type by the Java type name.
static int getSqlTypeByName(String typeName)
          Returns a JDBC int type for SQL typem name.
static boolean isDecimal(int type)
          Returns true if supplied type is a decimal type.
static boolean isNumeric(int type)
          Returns true if supplied type is a numeric type.
protected static String pickDataType(int jdbcType, org.apache.cayenne.dba.TypesMapping.TypeInfo[] alts)
          Method implements an algorithm to pick a data type from a list of alternatives that most closely matches JDBC data type.
static boolean supportsLength(int type)
          Returns true if supplied type can have a length attribute as a part of column definition.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NOT_DEFINED

public static final int NOT_DEFINED
See Also:
Constant Field Values

SQL_ARRAY

public static final String SQL_ARRAY
See Also:
Constant Field Values

SQL_BIGINT

public static final String SQL_BIGINT
See Also:
Constant Field Values

SQL_BINARY

public static final String SQL_BINARY
See Also:
Constant Field Values

SQL_BIT

public static final String SQL_BIT
See Also:
Constant Field Values

SQL_BLOB

public static final String SQL_BLOB
See Also:
Constant Field Values

SQL_BOOLEAN

public static final String SQL_BOOLEAN
Since:
1.2
See Also:
Constant Field Values

SQL_CLOB

public static final String SQL_CLOB
See Also:
Constant Field Values

SQL_CHAR

public static final String SQL_CHAR
See Also:
Constant Field Values

SQL_DATE

public static final String SQL_DATE
See Also:
Constant Field Values

SQL_DECIMAL

public static final String SQL_DECIMAL
See Also:
Constant Field Values

SQL_DOUBLE

public static final String SQL_DOUBLE
See Also:
Constant Field Values

SQL_FLOAT

public static final String SQL_FLOAT
See Also:
Constant Field Values

SQL_INTEGER

public static final String SQL_INTEGER
See Also:
Constant Field Values

SQL_LONGVARCHAR

public static final String SQL_LONGVARCHAR
See Also:
Constant Field Values

SQL_LONGVARBINARY

public static final String SQL_LONGVARBINARY
See Also:
Constant Field Values

SQL_NUMERIC

public static final String SQL_NUMERIC
See Also:
Constant Field Values

SQL_REAL

public static final String SQL_REAL
See Also:
Constant Field Values

SQL_SMALLINT

public static final String SQL_SMALLINT
See Also:
Constant Field Values

SQL_TINYINT

public static final String SQL_TINYINT
See Also:
Constant Field Values

SQL_TIME

public static final String SQL_TIME
See Also:
Constant Field Values

SQL_TIMESTAMP

public static final String SQL_TIMESTAMP
See Also:
Constant Field Values

SQL_VARBINARY

public static final String SQL_VARBINARY
See Also:
Constant Field Values

SQL_VARCHAR

public static final String SQL_VARCHAR
See Also:
Constant Field Values

SQL_OTHER

public static final String SQL_OTHER
See Also:
Constant Field Values

SQL_NULL

public static final String SQL_NULL
See Also:
Constant Field Values

JAVA_LONG

public static final String JAVA_LONG
See Also:
Constant Field Values

JAVA_BYTES

public static final String JAVA_BYTES
See Also:
Constant Field Values

JAVA_BOOLEAN

public static final String JAVA_BOOLEAN
See Also:
Constant Field Values

JAVA_STRING

public static final String JAVA_STRING
See Also:
Constant Field Values

JAVA_SQLDATE

public static final String JAVA_SQLDATE
See Also:
Constant Field Values

JAVA_UTILDATE

public static final String JAVA_UTILDATE
See Also:
Constant Field Values

JAVA_BIGDECIMAL

public static final String JAVA_BIGDECIMAL
See Also:
Constant Field Values

JAVA_DOUBLE

public static final String JAVA_DOUBLE
See Also:
Constant Field Values

JAVA_FLOAT

public static final String JAVA_FLOAT
See Also:
Constant Field Values

JAVA_INTEGER

public static final String JAVA_INTEGER
See Also:
Constant Field Values

JAVA_SHORT

public static final String JAVA_SHORT
See Also:
Constant Field Values

JAVA_BYTE

public static final String JAVA_BYTE
See Also:
Constant Field Values

JAVA_TIME

public static final String JAVA_TIME
See Also:
Constant Field Values

JAVA_TIMESTAMP

public static final String JAVA_TIMESTAMP
See Also:
Constant Field Values

JAVA_BLOB

public static final String JAVA_BLOB
See Also:
Constant Field Values

databaseTypes

protected Map<Integer,List<org.apache.cayenne.dba.TypesMapping.TypeInfo>> databaseTypes
Constructor Detail

TypesMapping

public TypesMapping(DatabaseMetaData metaData)
             throws SQLException
Throws:
SQLException
Method Detail

supportsLength

public static boolean supportsLength(int type)
Returns true if supplied type can have a length attribute as a part of column definition.


isNumeric

public static boolean isNumeric(int type)
Returns true if supplied type is a numeric type.


isDecimal

public static boolean isDecimal(int type)
Returns true if supplied type is a decimal type.


getDatabaseTypes

public static String[] getDatabaseTypes()
Returns an array of string names of the default JDBC data types.


pickDataType

protected static String pickDataType(int jdbcType,
                                     org.apache.cayenne.dba.TypesMapping.TypeInfo[] alts)
Method implements an algorithm to pick a data type from a list of alternatives that most closely matches JDBC data type.


getSqlTypeByName

public static int getSqlTypeByName(String typeName)
Returns a JDBC int type for SQL typem name.


getSqlNameByType

public static String getSqlNameByType(int type)
Returns a String representation of the SQL type from its JDBC code.


getSqlTypeByJava

public static int getSqlTypeByJava(String className)
Returns default java.sql.Types type by the Java type name.

Parameters:
className - Fully qualified Java Class name.
Returns:
The SQL type or NOT_DEFINED if no type found.

getSqlTypeByJava

public static int getSqlTypeByJava(Class<?> javaClass)
Guesses a default JDBC type for the Java class.

Since:
1.1

getJavaBySqlType

public static String getJavaBySqlType(int type)
Get the corresponding Java type by its java.sql.Types counterpart. Note that this method should be used as a last resort, with explicit mapping provided by user used as a first choice, as it can only guess how to map certain types, such as NUMERIC, etc.

Returns:
Fully qualified Java type name or null if not found.


Copyright © 2001-2013 Apache Cayenne. All Rights Reserved.