net.sourceforge.jtds.jdbc
Class TypeInfo

java.lang.Object
  extended bynet.sourceforge.jtds.jdbc.TypeInfo
All Implemented Interfaces:
java.lang.Comparable

public class TypeInfo
extends java.lang.Object
implements java.lang.Comparable

Represents an SQL data type as required by getTypeInfo(). Provides a suitable natural ordering.

This class probably shouldn't be public, but is required to be so by the tests.

Version:
$Id: TypeInfo.java,v 1.5 2005-07-27 11:02:34 alin_sinpalean Exp $
Author:
David Eaves

Field Summary
private  boolean autoIncrement
           
private  boolean caseSensitive
           
private  java.lang.String createParams
           
private  int dataType
           
private  int distanceFromJdbcType
           
private  boolean fixedPrecScale
           
private  java.lang.String literalPrefix
           
private  java.lang.String literalSuffix
           
private  java.lang.String localTypeName
           
private  short maximumScale
           
private  short minimumScale
           
private  int normalizedType
           
private  short nullable
           
(package private) static int NUM_COLS
           
private  int numPrecRadix
           
private  int precision
           
private  short searchable
           
private  int sqlDataType
           
private  int sqlDatetimeSub
           
private  java.lang.String typeName
           
private  boolean unsigned
           
 
Constructor Summary
TypeInfo(java.sql.ResultSet rs, boolean useLOBs)
           
TypeInfo(java.lang.String typeName, int dataType, boolean autoIncrement)
          For testing only.
 
Method Summary
private  int compare(int i1, int i2)
           
 int compareTo(java.lang.Object o)
          Comparable implementation that orders by dataType, then by how closely the data type maps to the corresponding JDBC SQL type.
private  int determineDistanceFromJdbcType()
          Determine how close this type is to the corresponding JDBC type.
 boolean equals(java.lang.Object o)
           
 int hashCode()
           
static int normalizeDataType(int serverDataType, boolean useLOBs)
          Return a Types-defined type for an SQL Server specific data type.
 java.lang.String toString()
           
 void update(java.sql.ResultSet rs)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NUM_COLS

static final int NUM_COLS
See Also:
Constant Field Values

typeName

private final java.lang.String typeName

dataType

private final int dataType

precision

private final int precision

literalPrefix

private final java.lang.String literalPrefix

literalSuffix

private final java.lang.String literalSuffix

createParams

private final java.lang.String createParams

nullable

private final short nullable

caseSensitive

private final boolean caseSensitive

searchable

private final short searchable

unsigned

private final boolean unsigned

fixedPrecScale

private final boolean fixedPrecScale

autoIncrement

private final boolean autoIncrement

localTypeName

private final java.lang.String localTypeName

minimumScale

private final short minimumScale

maximumScale

private final short maximumScale

sqlDataType

private final int sqlDataType

sqlDatetimeSub

private final int sqlDatetimeSub

numPrecRadix

private final int numPrecRadix

normalizedType

private final int normalizedType

distanceFromJdbcType

private final int distanceFromJdbcType
Constructor Detail

TypeInfo

public TypeInfo(java.sql.ResultSet rs,
                boolean useLOBs)
         throws java.sql.SQLException

TypeInfo

public TypeInfo(java.lang.String typeName,
                int dataType,
                boolean autoIncrement)
For testing only. Create an instance with just the properties utilised in the compareTo() method (set name, type, and auto increment).

Method Detail

equals

public boolean equals(java.lang.Object o)

hashCode

public int hashCode()

toString

public java.lang.String toString()

update

public void update(java.sql.ResultSet rs)
            throws java.sql.SQLException
Throws:
java.sql.SQLException

compareTo

public int compareTo(java.lang.Object o)
Comparable implementation that orders by dataType, then by how closely the data type maps to the corresponding JDBC SQL type.

The data type values for the non-standard SQL Server types tend to have negative numbers while the corresponding standard types have positive numbers so utilise that in the sorting.

Specified by:
compareTo in interface java.lang.Comparable

compare

private int compare(int i1,
                    int i2)

determineDistanceFromJdbcType

private int determineDistanceFromJdbcType()
Determine how close this type is to the corresponding JDBC type. Used in sorting to distinguish between types that have the same normalizedType value.

Returns:
positive integer indicating how far away the type is from the corresponding JDBC type, with zero being the nearest possible match and 9 being the least

normalizeDataType

public static int normalizeDataType(int serverDataType,
                                    boolean useLOBs)
Return a Types-defined type for an SQL Server specific data type.

Parameters:
serverDataType - the data type, as returned by the server
useLOBs - whether LOB data types are used for large types
Returns:
the equivalent data type defined by java.sql.Types


Generated on October 27 2012