Package adql.db

Class DBType

java.lang.Object
adql.db.DBType

public class DBType extends 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.5 (08/2023)
Author:
Grégory Mantelet (ARI)
  • Nested Class Summary

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

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

    Constructors
    Constructor
    Description
    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

    Modifier and Type
    Method
    Description
    boolean
    Tells whether this type is a list of bytes.
    boolean
    Tell whether this DBType is compatible with the given one.
    boolean
    Tells whether this type is a geometrical region.
    boolean
    Tells whether this type is a numeric.
    boolean
    Tells whether this type is about characters.
    boolean
    Tell whether this type has been resolved or not.
     

    Methods inherited from class java.lang.Object

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

    • NO_LENGTH

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

      public final DBType.DBDatatype type
      Datatype of a column.
    • length

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

    • 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 Details

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