net.sf.farrago.cwm.datatypes
Interface CwmUnionClass
- All Superinterfaces:
- RefBaseObject, RefClass, RefFeatured
- All Known Implementing Classes:
- CwmUnionClass$Hib
public interface CwmUnionClass
- extends RefClass
Union class proxy interface.
The Union class represents programming language unions and similarly
structured data types. Because of the diversity of union semantics found
across software systems, the Union and UnionMember classes are likely
candidates for specialization to better capture union semantics in
specific language extension packages.
A discriminated Union has a collection of UnionMembers that determine the
sets of contents that the Union may contain. Such Unions have an attribute
called the discriminator that identifies the memberCase value of the
UnionMember that the Union currently contains. The discriminator is found
via the UnionDiscriminator association to StructuralFeature. The
discriminator may be embedded within UnionMembers or may be located
outside the discriminator. If it is located within UnionMembers, the
discriminator should occur in every UnionMember at the same location
(often, the first).
Undiscriminated unions (for example, a C language union) are also
supported, but have an empty discriminator reference, and the memberCase
attribute of the UnionMembers it contains is ignored.
Undiscriminated Unions are often used to represent alternate views of a
single physical
storage area. A fine degree of control over this aspect of Unions may be
obtained by
creating a class that derives from both UnionMember and FixedOffsetField
(in the
CWM Record package) and setting the offset attribute instances of that
class
accordingly.
Note: This type should not be subclassed,
implemented or directly instantiated by clients. It is generated from a
MOF metamodel and implemented by Enki or MDR.
createCwmUnion
CwmUnion createCwmUnion()
- The default factory operation used to create an instance object.
- Returns:
- The created instance object.
createCwmUnion
CwmUnion createCwmUnion(String name,
VisibilityKind visibility,
boolean isAbstract)
- Creates an instance object having attributes initialized by the passed
values.
- Parameters:
name
- An identifier for the ModelElement within its containing
Namespace.visibility
- Specifies extent of the visibility of the
ModelElement within its owning Namespace.isAbstract
- An abstract Classifier is not instantiable.
- Returns:
- The created instance object.