Class BaseTypeIdImpl

java.lang.Object
org.apache.derby.catalog.types.BaseTypeIdImpl
All Implemented Interfaces:
Externalizable, Serializable, Formatable, TypedFormat
Direct Known Subclasses:
DecimalTypeIdImpl, RowMultiSetImpl, UserDefinedTypeIdImpl

public class BaseTypeIdImpl extends Object implements Formatable
This class is the base class for all type ids that are written to the system tables.
See Also:
  • Field Details

    • formatId

      private int formatId
      This class implements Formatable. That means that it can write itself to and from a formatted stream. If you add more fields to this class, make sure that you also write/read them with the writeExternal()/readExternal() methods. If, inbetween releases, you add more fields to this class, then you should bump the version number emitted by the getTypeFormatId() method.
    • schemaName

      protected String schemaName
    • unqualifiedName

      String unqualifiedName
    • JDBCTypeId

      transient int JDBCTypeId
      JDBC type - derived from the format identifier.
  • Constructor Details

    • BaseTypeIdImpl

      public BaseTypeIdImpl()
      niladic constructor. Needed for Formatable interface to work.
    • BaseTypeIdImpl

      public BaseTypeIdImpl(int formatId)
      1 argument constructor. Needed for Formatable interface to work.
      Parameters:
      formatId - Format id of specific type id.
    • BaseTypeIdImpl

      BaseTypeIdImpl(String SQLTypeName)
      Constructor for an BaseTypeIdImpl
      Parameters:
      SQLTypeName - The unqualified SQL name of the type
    • BaseTypeIdImpl

      BaseTypeIdImpl(String schemaName, String unqualifiedName)
      Constructor for an BaseTypeIdImpl which describes a UDT
      Parameters:
      schemaName - The schema that the UDT lives in
      unqualifiedName - The unqualified name of the UDT in that schema
  • Method Details

    • getSQLTypeName

      public String getSQLTypeName()
      Returns the SQL name of the datatype. If it is a Derby user-defined type, it returns the full Java path name for the datatype, meaning the dot-separated path including the package names. If it is a UDT, returns "schemaName"."unqualifiedName".
      Returns:
      A String containing the SQL name of this type.
    • getSchemaName

      public String getSchemaName()
      Get the schema name of this type. Non-null only for UDTs
    • getUnqualifiedName

      public String getUnqualifiedName()
      Get the unqualified name of this type. Except for UDTs, this is the same value as getSQLTypeName()
    • isAnsiUDT

      public boolean isAnsiUDT()
      Return true if this is this type id describes an ANSI UDT
    • getJDBCTypeId

      public int getJDBCTypeId()
      Get the jdbc type id for this type. JDBC type can be found in java.sql.Types.
      Returns:
      a jdbc type, e.g. java.sql.Types.DECIMAL
      See Also:
    • toParsableString

      public String toParsableString(TypeDescriptor td)
      Converts this TypeId, given a data type descriptor (including length/precision), to a string. E.g. VARCHAR(30) For most data types, we just return the SQL type name.
      Parameters:
      td - Data type descriptor that holds the length/precision etc. as necessary
      Returns:
      String version of datatype, suitable for running through the Parser.
    • userType

      public boolean userType()
      Does this type id represent a user type?
    • toString

      public String toString()
      Format this BaseTypeIdImpl as a String
      Overrides:
      toString in class Object
      Returns:
      This BaseTypeIdImpl formatted as a String
    • equals

      public boolean equals(Object that)
      we want equals to say if these are the same type id or not.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Hashcode which works with equals.
      Overrides:
      hashCode in class Object
    • getTypeFormatId

      public int getTypeFormatId()
      Get the formatID which corresponds to this class.
      Specified by:
      getTypeFormatId in interface TypedFormat
      Returns:
      the formatID of this class
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Read this object from a stream of stored objects.
      Specified by:
      readExternal in interface Externalizable
      Parameters:
      in - read this.
      Throws:
      IOException - thrown on error
      ClassNotFoundException - thrown on error
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Write this object to a stream of stored objects.
      Specified by:
      writeExternal in interface Externalizable
      Parameters:
      out - write bytes here.
      Throws:
      IOException - thrown on error
    • setTypeIdSpecificInstanceVariables

      private void setTypeIdSpecificInstanceVariables()
    • doubleQuote

      private String doubleQuote(String raw)
    • stripQuotes

      private String stripQuotes(String quoted)