Class 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 Detail

      • 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
        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)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • 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