## org.eclipse.datatools.modelbase.sql.datatypes
Interface UserDefinedType

All Superinterfaces:
  DataType, SQLObject

All Known Subinterfaces:
  DistinctUserDefinedType, Domain, StructuredUserDefinedType

All Known Implementing Classes:
  DistinctUserDefinedTypeImpl, DomainImpl, StructuredUserDefinedTypeImpl, UserDefinedTypeImpl

public interface UserDefinedType
extends DataType

A representation of the model object 'User Defined Type'. 4.7 User-defined types A user-defined type is a schema object, identified by a . The definition of a userdefined type specifies a number of components, including in particular a list of attribute definitions. Although the attribute definitions are said to define the representation of the user-defined type, in fact they implicitly define certain functions (observers and mutators) that are part of the interface of the user-defined type; physical representations of user-defined type values are implementation-dependent. The representation of a user-defined type is expressed either as a single data type (some predefined data type, called the source type), in which case the user-defined type is said to be a distinct type, or as a list of attribute definitions, in which case it is said to be a structured type. A user-defined type is described by a user-defined type descriptor. A user-defined type descriptor contains: - The name of the user-defined type ( ). This is the type designator of that type, used in type precedence lists (see Subclause 9.5, "Type precedence list determination"). - An indication of whether the user-defined type is a structured type or a distinct type. - The ordering form for the user-defined type (EQUALS , FULL , or NONE ). - The ordering category for the user-defined type (RELATIVE , MAP , or STATE ). - A <specific routine designator> identifying the ordering function, depending on the ordering category. - If the user-defined type is a direct subtype of another user-defined type, then the name of that user-defined type. - If the representation is a predefined data type, then the descriptor of that type; otherwise the attribute descriptor of every originally-defined attribute and every inherited attribute of the user-defined type. - An indication of whether the user-defined type is instantiable or not instantiable. - An indication of whether the user-defined type is final or not final. - The transform descriptor of the user-defined type. - If the user-defined type is a structured type, then: - Whether the referencing type of the structured type has a user-defined representation, a derived representation, or a system-defined representation. - If user-defined representation is specified, then the type descriptor of the representation type of the referencing type of the structured type; otherwise, if derived representation is specified, then the list of attributes. NOTE 15 - "user-defined representation", "derived representation", and "system-defined representation" of a reference type are defined in Subclause 4.9, "Reference types". - If the <method specification list> is specified, then for each <method specification> contained in <method specification list> , a method specification descriptor that includes: - The <method name>. - The <specific method name>. - The <SQL parameter declaration list> augmented to include the implicit first parameter with parameter name SELF. - The <language name>. - If the <language name> is not SQL, then the <parameter style>. - The <returns data type>. - The <result cast from type> , if any. - An indication as to whether the <method specification> is an <original method specification> or an <overriding method specification> . - If the <method specification> is an <original method specification> , then an indication of whether STATIC or CONSTRUCTOR is specified. - An indication whether the method is deterministic. - An indication whether the method possibly writes SQL data, possibly reads SQL data, possibly contains SQL, or does not possibly contain SQL. - An indication whether the method should not be invoked if any argument is the null value, in which case the value of the method is the null value. NOTE 16 - The characteristics of an <overriding method specification> other than the <method name> , <SQL parameter declaration list> , and <returns data type> are the same as the characteristics for the corresponding <original method specification> .

The following features are supported:

- `Schema`
- `Ordering`

See Also:
  `SQLDataTypesPackage.getUserDefinedType()`

Method Summary
`UserDefinedTypeOrdering` `getOrdering()` Returns the value of the 'Ordering' containment reference.
`Schema` `getSchema()` Returns the value of the 'Schema' reference.
`void` `setOrdering(UserDefinedTypeOrdering value)` Sets the value of the '`Ordering`' containment reference.
`void` `setSchema(Schema value)` Sets the value of the '`Schema`' reference.

Methods inherited from interface org.eclipse.datatools.modelbase.sql.datatypes.DataType
`setContainer`

Methods inherited from interface org.eclipse.datatools.modelbase.sql.schema.SQLObject
`addEAnnotation, addEAnnotationDetail, getDependencies, getDescription, getEAnnotation, getEAnnotationDetail, getLabel, removeEAnnotationDetail, setAnnotationDetail, setDescription, setLabel`

Method Detail

### getSchema

    public Schema getSchema()

  Returns the value of the 'Schema' reference. It is bidirectional and its opposite is '`User Defined Types`'.

  If the meaning of the 'Schema' reference isn't clear, there really should be more of a description here...

  Returns:
    the value of the 'Schema' reference.
  See Also:
    `setSchema(Schema)`, `SQLDataTypesPackage.getUserDefinedType_Schema()`, `Schema.getUserDefinedTypes()`

### setSchema

    public void setSchema(Schema value)

  Sets the value of the '`Schema`' reference.

  Parameters:
    `value` - the new value of the 'Schema' reference.
  See Also:
    `getSchema()`

### getOrdering

    public UserDefinedTypeOrdering getOrdering()

  Returns the value of the 'Ordering' containment reference.

  If the meaning of the 'Ordering' containment reference isn't clear, there really should be more of a description here...

  Returns:
    the value of the 'Ordering' containment reference.
  See Also:
    `setOrdering(UserDefinedTypeOrdering)`, `SQLDataTypesPackage.getUserDefinedType_Ordering()`

### setOrdering

    public void setOrdering(UserDefinedTypeOrdering value)

  Sets the value of the '`Ordering`' containment reference.

  Parameters:
    `value` - the new value of the 'Ordering' containment reference.
  See Also:
    `getOrdering()`

Copyright © 2006 Actuate, IBM Corporation, Sybase, Inc. and others. All rights reserved.