Previous | Table of Contents | Next |
One and only one M1-level Instance is a value whose type is described by an M2-level Class. An Instance has the following
properties in the MOF computational model:
• It has object identity. This has different implications depending on the mapping, but in general it means that many conceptually distinct Instance values can exist whose component values are the same.
• It has a definite lifetime. An Instance value is created in response to particular events in the computational model, and continues to exist until it is deleted in response to other events.
• It is created in a computational context known as a Class extent, and remains in that extent for its lifetime; see 8.8, “Extents,? on page 145 .
• It can have attribute values defined using M2-level Attributes; see 8.6, “Semantics of Attributes,? on page 141.
• It can be linked to other Instances; 8.9, “Semantics of Associations,? on page 149.
Not all M2-level Classes can have corresponding M1-level Instances. In particular, Instances can never be created for Classes
that have “isAbstract? set to true. In addition, if an M2-level Class has “isSingleton? set to true, only one Instance of
the class can exist within an extent for the Class.
The null instance of an M2-level Class has a conceptual identity that is distinct from other (non-null) instances. Null conceptually
exists forever in all Class extents, but it does not have attribute values and cannot be related to other Instances (or itself)
by an Association link.
NOTE: While null is currently a valid Class instance, some technology mappings do not support it. Therefore it is inadvisable
to rely on being able to use the null instance value in a technology neutral metamodel.