Class SQLTypeInfo

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean allowsPrecisionSpec
      Whether the type allows specification of the precision in parentheses after the type name.
      protected boolean autoIncrement
      Whether the type automatically increments for each new row inserted.
      protected boolean caseSensitive
      Whether the data type is case-sensitive in comparisons.
      protected java.lang.String createParams
      Indicates the parameters used in defining columns of this type.
      protected short dataType
      The JDBC data type number of this data type (see java.sql.Types).
      protected boolean fixedPrecScale
      Whether the type can be assigned a fixed scale value, such as for decimal or currency types.
      protected boolean fromJdbcDriver
      Whether this originates from the JDBC Driver
      private int hash
      Hashcode.
      protected java.lang.String literalPrefix
      The prefix used to quote a literal of this data type; may be null.
      protected java.lang.String literalSuffix
      The suffix used to quote a literal of this data type; may be null.
      protected java.lang.String localTypeName
      Localized version of the DBMS-specific type name of this data type.
      protected short maximumScale
      The maximum supported scale value for this data type.
      protected short minimumScale
      The minimum supported scale value for this data type.
      protected int nullable
      Indicates whether null values are allowed for this data type.
      protected int numPrecRadix
      Indicates the numeric radix of this data type, which is usually 2 or 10.
      protected int precision
      The maximum precision/length allowed for this data type.
      protected short searchable
      The searchability of this data type in terms of the kinds of SQL WHERE clauses that are allowed.
      protected java.lang.String typeName
      The RDBMS-specific name for this data type.
      protected boolean unsignedAttribute
      true indicates the type is unsigned, false otherwise.
    • Constructor Summary

      Constructors 
      Constructor Description
      SQLTypeInfo​(java.lang.String typeName, short dataType, int precision, java.lang.String literalPrefix, java.lang.String literalSuffix, java.lang.String createParams, int nullable, boolean caseSensitive, short searchable, boolean unsignedAttribute, boolean fixedPrecScale, boolean autoIncrement, java.lang.String localTypeName, short minimumScale, short maximumScale, int numPrecRadix)  
      SQLTypeInfo​(java.sql.ResultSet rs)
      Constructor to create a type info definition for the current row of the passed ResultSet.
    • Field Detail

      • fromJdbcDriver

        protected boolean fromJdbcDriver
        Whether this originates from the JDBC Driver
      • typeName

        protected java.lang.String typeName
        The RDBMS-specific name for this data type.
      • dataType

        protected short dataType
        The JDBC data type number of this data type (see java.sql.Types).
      • precision

        protected int precision
        The maximum precision/length allowed for this data type.
      • literalPrefix

        protected java.lang.String literalPrefix
        The prefix used to quote a literal of this data type; may be null.
      • literalSuffix

        protected java.lang.String literalSuffix
        The suffix used to quote a literal of this data type; may be null.
      • createParams

        protected java.lang.String createParams
        Indicates the parameters used in defining columns of this type.
      • nullable

        protected int nullable
        Indicates whether null values are allowed for this data type.
      • caseSensitive

        protected boolean caseSensitive
        Whether the data type is case-sensitive in comparisons.
      • searchable

        protected short searchable
        The searchability of this data type in terms of the kinds of SQL WHERE clauses that are allowed.
      • unsignedAttribute

        protected boolean unsignedAttribute
        true indicates the type is unsigned, false otherwise.
      • fixedPrecScale

        protected boolean fixedPrecScale
        Whether the type can be assigned a fixed scale value, such as for decimal or currency types.
      • autoIncrement

        protected boolean autoIncrement
        Whether the type automatically increments for each new row inserted.
      • localTypeName

        protected java.lang.String localTypeName
        Localized version of the DBMS-specific type name of this data type.
      • minimumScale

        protected short minimumScale
        The minimum supported scale value for this data type.
      • maximumScale

        protected short maximumScale
        The maximum supported scale value for this data type.
      • numPrecRadix

        protected int numPrecRadix
        Indicates the numeric radix of this data type, which is usually 2 or 10.
      • allowsPrecisionSpec

        protected boolean allowsPrecisionSpec
        Whether the type allows specification of the precision in parentheses after the type name.
      • hash

        private int hash
        Hashcode. Set on first use.
    • Constructor Detail

      • SQLTypeInfo

        public SQLTypeInfo​(java.lang.String typeName,
                           short dataType,
                           int precision,
                           java.lang.String literalPrefix,
                           java.lang.String literalSuffix,
                           java.lang.String createParams,
                           int nullable,
                           boolean caseSensitive,
                           short searchable,
                           boolean unsignedAttribute,
                           boolean fixedPrecScale,
                           boolean autoIncrement,
                           java.lang.String localTypeName,
                           short minimumScale,
                           short maximumScale,
                           int numPrecRadix)
      • SQLTypeInfo

        public SQLTypeInfo​(java.sql.ResultSet rs)
        Constructor to create a type info definition for the current row of the passed ResultSet.
        Parameters:
        rs - ResultSet (from DatabaseMetaData.getTypeInfo() for example).
        Throws:
        org.datanucleus.exceptions.NucleusDataStoreException - Thrown if an error occurs getting the information
    • Method Detail

      • addProperty

        public void addProperty​(java.lang.String name,
                                java.lang.Object value)
        Method to add a property for the type.
        Specified by:
        addProperty in interface org.datanucleus.store.schema.StoreSchemaData
        Parameters:
        name - Name of property
        value - Its value
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
        Accessor for a property.
        Specified by:
        getProperty in interface org.datanucleus.store.schema.StoreSchemaData
        Parameters:
        name - Name of the property
        Returns:
        Its value, or null if not defined
      • equals

        public final boolean equals​(java.lang.Object obj)
        Indicates whether some object is "equal to" this one. Two SQLTypeInfo are considered equal if their type name and data type properties are equal.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the reference object with which to compare
        Returns:
        true if this object is equal to the obj argument; false otherwise.
      • hashCode

        public final int hashCode()
        Returns a hash code value for this object.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        a hash code value for this object.
      • toString

        public java.lang.String toString()
        Returns the string representation of this object.
        Overrides:
        toString in class java.lang.Object
        Returns:
        string representation of this object.
      • toString

        public java.lang.String toString​(java.lang.String indent)
        Returns the string representation of this object.
        Parameters:
        indent - The indent for each line of the output
        Returns:
        string representation of this object.
      • isCompatibleWith

        public boolean isCompatibleWith​(RDBMSColumnInfo colInfo)
        Convenience method for returning if this type is compatible with the provided column. Compares the data type of each record, and returns true if the types are equivalent. For example one could be VARCHAR, and the other LONGVARCHAR so they both store string data, and hence they are compatible.
        Parameters:
        colInfo - The column
        Returns:
        Whether they are considered compatible
      • isIntegerType

        private static boolean isIntegerType​(int type)
        Verify if it's TINYINT, SMALLINT, INTEGER, or BIGINT type.
        Parameters:
        type - The type
        Returns:
        Whether the type is of an integer type
      • isDateType

        private static boolean isDateType​(int type)
        Verify if it's DATE, TIME, TIMESTAMP type.
        Parameters:
        type - The type
        Returns:
        Whether the type is of a date type
      • isFloatingType

        private static boolean isFloatingType​(int type)
        Verify if it's FLOAT, REAL or DOUBLE.
        Parameters:
        type - The type
        Returns:
        Whether the type is of a floating point type
      • isNumericType

        private static boolean isNumericType​(int type)
        Verify if it's NUMERIC or DECIMAL.
        Parameters:
        type - The type
        Returns:
        Whether the type is of a numeric type
      • isCharacterType

        private static boolean isCharacterType​(int type)
        Verify if it's LONGVARCHAR or VARCHAR.
        Parameters:
        type - The type
        Returns:
        Whether the type is of a character type
      • setTypeName

        public void setTypeName​(java.lang.String typeName)
      • getTypeName

        public java.lang.String getTypeName()
      • getDataType

        public short getDataType()
      • getPrecision

        public int getPrecision()
      • getLiteralPrefix

        public java.lang.String getLiteralPrefix()
      • getLiteralSuffix

        public java.lang.String getLiteralSuffix()
      • getCreateParams

        public java.lang.String getCreateParams()
      • getNullable

        public int getNullable()
      • isCaseSensitive

        public boolean isCaseSensitive()
      • getSearchable

        public short getSearchable()
      • isUnsignedAttribute

        public boolean isUnsignedAttribute()
      • isFixedPrecScale

        public boolean isFixedPrecScale()
      • isAutoIncrement

        public boolean isAutoIncrement()
      • setLocalTypeName

        public void setLocalTypeName​(java.lang.String localTypeName)
      • getLocalTypeName

        public java.lang.String getLocalTypeName()
      • getMinimumScale

        public short getMinimumScale()
      • getMaximumScale

        public short getMaximumScale()
      • getNumPrecRadix

        public int getNumPrecRadix()
      • setAllowsPrecisionSpec

        public void setAllowsPrecisionSpec​(boolean allowsPrecisionSpec)
      • isAllowsPrecisionSpec

        public boolean isAllowsPrecisionSpec()