Class TypeInfo

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

public class TypeInfo extends Object implements 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 Details

    • NUM_COLS

      static final int NUM_COLS
      See Also:
    • typeName

      private final String typeName
    • dataType

      private final int dataType
    • precision

      private final int precision
    • literalPrefix

      private final String literalPrefix
    • literalSuffix

      private final String literalSuffix
    • createParams

      private final 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 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 Details

    • TypeInfo

      public TypeInfo(ResultSet rs, boolean useLOBs) throws SQLException
      Throws:
      SQLException
    • TypeInfo

      public TypeInfo(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 Details

    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • update

      public void update(ResultSet rs) throws SQLException
      Throws:
      SQLException
    • compareTo

      public int compareTo(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 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