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 getJavaBySqlType(int type, int length, int scale)
          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.

getJavaBySqlType

public static String getJavaBySqlType(int type,
                                      int length,
                                      int scale)
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-2011 Apache Cayenne. All Rights Reserved.