Package org.apache.derby.catalog.types
Class UserDefinedTypeIdImpl
- java.lang.Object
-
- org.apache.derby.catalog.types.BaseTypeIdImpl
-
- org.apache.derby.catalog.types.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 Summary
Fields Modifier and Type Field Description protected java.lang.String
className
This class implements Formatable.-
Fields inherited from class org.apache.derby.catalog.types.BaseTypeIdImpl
JDBCTypeId, schemaName, unqualifiedName
-
-
Constructor Summary
Constructors Constructor Description UserDefinedTypeIdImpl()
Public niladic constructor.UserDefinedTypeIdImpl(java.lang.String className)
Constructor for a UserDefinedTypeIdImpl.UserDefinedTypeIdImpl(java.lang.String schemaName, java.lang.String unqualifiedName, java.lang.String className)
Constructor for a UDT.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getClassName()
Return the java class name for this typeint
getTypeFormatId()
Get the formatID which corresponds to this class.boolean
isBound()
Has this user type been bound?void
readExternal(java.io.ObjectInput in)
Read this object from a stream of stored objects.boolean
userType()
Does this type id represent a user type?void
writeExternal(java.io.ObjectOutput out)
Write this object to a stream of stored objects.-
Methods inherited from class org.apache.derby.catalog.types.BaseTypeIdImpl
equals, getJDBCTypeId, getSchemaName, getSQLTypeName, getUnqualifiedName, hashCode, isAnsiUDT, toParsableString, toString
-
-
-
-
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 classBaseTypeIdImpl
-
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 interfacejava.io.Externalizable
- Overrides:
readExternal
in classBaseTypeIdImpl
- Parameters:
in
- read this.- Throws:
java.io.IOException
- thrown on errorjava.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 interfacejava.io.Externalizable
- Overrides:
writeExternal
in classBaseTypeIdImpl
- Parameters:
out
- write bytes here.- Throws:
java.io.IOException
- thrown on error
-
getTypeFormatId
public int getTypeFormatId()
Get the formatID which corresponds to this class.- Specified by:
getTypeFormatId
in interfaceTypedFormat
- Overrides:
getTypeFormatId
in classBaseTypeIdImpl
- Returns:
- the formatID of this class
-
-