// Copyright (c) 2006 DMTF. All rights reserved.
// Add top level relational model
// support to the database model.
// Add UmlPackagePath
// qualifier values to CIM Schema.
// ===================================================================
// CIM_SqlUserDefinedType
// ===================================================================
[Experimental, Version ( "2.12.0" ),
UMLPackagePath ( "CIM::Database::Sql" ),
Description (
"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. \n"
"\n"
"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. \n"
"\n"
"A user-defined type is described by a user-defined type "
"descriptor. A user-defined type descriptor contains: \n"
"- The name of the user-defined type (). This is the type designator of that type, used in type "
"precedence lists. \n"
"- An indication of whether the user-defined type is a "
"structured type or a distinct type. \n"
"- The ordering form for the user-defined type (EQUALS, FULL, "
"or NONE). \n"
"- The ordering category for the user-defined type (RELATIVE, "
"MAP, or STATE). \n"
"- A identifying the ordering "
"function, depending on the ordering category. \n"
"- If the user-defined type is a direct subtype of another user "
"-defined type, then the name of that user-defined type. \n"
"- 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. \n"
"- An indication of whether the user-defined type is "
"instantiable or not instantiable. \n"
"- An indication of whether the user-defined type is final or "
"not final. \n"
"- The transform descriptor of the user-defined type. \n"
"- If the user-defined type is a structured type, then: \n"
"- Whether the referencing type of the structured type has a "
"user -defined representation, a derived representation, or a "
"system -defined representation. \n"
"- 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. \n"
"- If the is specified, then for "
"each contained in , a method specification descriptor that includes: \n"
"- The . \n"
"- The . \n"
"- The augmented to include "
"the implicit first parameter with parameter name SELF. \n"
"- The . \n"
"- If the is not SQL, then the . \n"
"- The . \n"
"- The , if any. \n"
"- An indication as to whether the is an "
" or an . \n"
"- If the is an , then an indication of whether STATIC or "
"CONSTRUCTOR is specified. \n"
"- An indication whether the method is deterministic. \n"
"- An indication whether the method possibly writes SQL data, "
"possibly reads SQL data, possibly contains SQL, or does not "
"possibly contain SQL. \n"
"- 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." )]
class CIM_SqlUserDefinedType : CIM_SqlObject {
};