Package adql.db

Class DBType


  • public class DBType
    extends java.lang.Object

    Describe a full column type as it is described in the IVOA document of TAP. Thus, this object contains 2 attributes: type (or datatype) and length (or size).

    The length/size may be not defined ; in this case, its value is set to NO_LENGTH or is negative or null.

    All datatypes declared in the IVOA recommendation document of TAP are listed in an enumeration type: DBType.DBDatatype. It is used to set the attribute type/datatype of this class.

    Since:
    1.3
    Version:
    1.4 (07/2016)
    Author:
    Grégory Mantelet (ARI)
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  DBType.DBDatatype
      List of all datatypes declared in the IVOA recommendation of TAP (in the section UPLOAD).
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int length
      The length parameter (only few datatypes need this parameter: char, varchar, binary and varbinary).
      static int NO_LENGTH
      Special value in case no length/size is specified.
      DBType.DBDatatype type
      Datatype of a column.
    • Constructor Summary

      Constructors 
      Constructor Description
      DBType​(DBType.DBDatatype datatype)
      Build a TAP column type by specifying a datatype.
      DBType​(DBType.DBDatatype datatype, int length)
      Build a TAP column type by specifying a datatype and a length (needed only for datatypes like char, varchar, binary and varbinary).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean isBinary()
      Tells whether this type is a list of bytes.
      boolean isCompatible​(DBType t)
      Tell whether this DBType is compatible with the given one.
      boolean isGeometry()
      Tells whether this type is a geometrical region.
      boolean isNumeric()
      Tells whether this type is a numeric.
      boolean isString()
      Tells whether this type is about characters.
      boolean isUnknown()
      Tell whether this type has been resolved or not.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • NO_LENGTH

        public static final int NO_LENGTH
        Special value in case no length/size is specified.
        See Also:
        Constant Field Values
      • length

        public final int length
        The length parameter (only few datatypes need this parameter: char, varchar, binary and varbinary).
    • Constructor Detail

      • DBType

        public DBType​(DBType.DBDatatype datatype)
        Build a TAP column type by specifying a datatype.
        Parameters:
        datatype - Column datatype.
      • DBType

        public DBType​(DBType.DBDatatype datatype,
                      int length)
        Build a TAP column type by specifying a datatype and a length (needed only for datatypes like char, varchar, binary and varbinary).
        Parameters:
        datatype - Column datatype.
        length - Length of the column value (needed only for datatypes like char, varchar, binary and varbinary).
    • Method Detail

      • isNumeric

        public boolean isNumeric()

        Tells whether this type is a numeric.

        Concerned types: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE, BINARY, VARBINARY and BLOB.

        Important note: Since UNKNOWN is an unresolved type, it can potentially be anything. But, in order to avoid incorrect operation while expecting a numeric although the type is unknown and is in fact not really a numeric, this function will return false if the type is UNKNOWN BUT true if UNKNOWN_NUMERIC.

        Returns:
        true if this type is a numeric, false otherwise.
      • isBinary

        public boolean isBinary()

        Tells whether this type is a list of bytes.

        Concerned types: BINARY, VARBINARY and BLOB.

        Important note: Since UNKNOWN is an unresolved type, it can potentially be anything. But, in order to avoid incorrect operation while expecting a binary although the type is unknown and is in fact not really a binary, this function will return false if the type is UNKNOWN or UNKNOWN_NUMERIC.

        Returns:
        true if this type is a binary, false otherwise.
      • isString

        public boolean isString()

        Tells whether this type is about characters.

        Concerned types: CHAR, VARCHAR, CLOB and TIMESTAMP.

        Important note: Since UNKNOWN is an unresolved type, it can potentially be anything. But, in order to avoid incorrect operation while expecting a string although the type is unknown and is in fact not really a string, this function will return false if the type is UNKNOWN or UNKNOWN_NUMERIC

        Returns:
        true if this type is a string, false otherwise.
      • isGeometry

        public boolean isGeometry()

        Tells whether this type is a geometrical region.

        Concerned types: POINT and REGION.

        Important note: Since UNKNOWN is an unresolved type, it can potentially be anything. But, in order to avoid incorrect operation while expecting a geometry although the type is unknown and is in fact not really a geometry, this function will return false if the type is UNKNOWN or UNKNOWN_NUMERIC.

        Returns:
        true if this type is a geometry, false otherwise.
      • isUnknown

        public boolean isUnknown()

        Tell whether this type has been resolved or not.

        Concerned types: UNKNOWN and UNKNOWN_NUMERIC.

        Returns:
        true if this type has NOT been resolved, false otherwise.
        Since:
        1.4
      • isCompatible

        public boolean isCompatible​(DBType t)

        Tell whether this DBType is compatible with the given one.

        Two DBTypes are said compatible if they are both binary, numeric, geometric or string. If one of the two types is unknown or unknown_numeric, this function will consider them as compatible and will return true.

        Parameters:
        t - The type to compare to.
        Returns:
        true if this type is compatible with the given one, false otherwise.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object