Class UserDefinedTypeIdImpl

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, Formatable, TypedFormat

    public class UserDefinedTypeIdImpl
    extends BaseTypeIdImpl

    This type id describes a user defined type. There are 2 kinds of user defined types in Derby:

    • Old-fashioned - In the original Cloudscape code, it was possible to declare a column's type to be the name of a Java class. Unlike ANSI UDTs, these user defined types were not schema objects themselves and they didn't have schema-qualified names. Some of the system tables have columns whose datatypes are old-fashioned user defined types. E.g., SYS.SYSALIASES.ALIASINFO.
    • ANSI - As part of the work on DERBY-651, we added ANSI UDTs. These are user defined types which are declared via the CREATE TYPE statement. These have schema-qualified names. The CREATE TYPE statement basically binds a schema-qualified name to the name of a Java class.
    See Also:
    Serialized Form
    • Field Detail

      • className

        protected java.lang.String className
        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.
    • Constructor Detail

      • UserDefinedTypeIdImpl

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

        public UserDefinedTypeIdImpl​(java.lang.String className)
                              throws StandardException
        Constructor for a UserDefinedTypeIdImpl. The SQLTypeName of a UserDefinedType is assumed to be its className for Derby-only UserDefinedTypes. For actual user created UDTs, the SQLTypeName is a schema qualified name.
        Parameters:
        className - The SQL name of the type
        Throws:
        StandardException
      • UserDefinedTypeIdImpl

        public UserDefinedTypeIdImpl​(java.lang.String schemaName,
                                     java.lang.String unqualifiedName,
                                     java.lang.String className)
        Constructor for a UDT.
        Parameters:
        schemaName - Schema that the UDT lives in.
        unqualifiedName - The name of the type inside that schema.
        className - The Java class bound to the SQL type.
    • Method Detail

      • getClassName

        public java.lang.String getClassName()
        Return the java class name for this type
      • userType

        public boolean userType()
        Does this type id represent a user type?
        Overrides:
        userType in class BaseTypeIdImpl
      • isBound

        public boolean isBound()
        Has this user type been bound?
      • readExternal

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

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