Class UML 2.3::Class
Description:
Class has derived association that indicates how it may be extended through
one or more stereotypes. Stereotype is the only kind of metaclass that
cannot be extended by stereotypes.
Direct Superclasses: EncapsulatedClassifier,
BehavioredClassifierDirect Subclasses: Stereotype,
Node,
Component,
Behavior,
AssociationClassClass Precedence List: Class,
EncapsulatedClassifier,
StructuredClassifier,
BehavioredClassifier,
Classifier,
TemplateableElement,
Type,
PackageableElement,
ParameterableElement,
Namespace,
RedefinableElement,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png)
extension :
Extension (0 *); -- source
Class![](/se-interop/image/down-arrow.png)
isAbstract : Boolean (1 1); -- source
Class![](/se-interop/image/down-arrow.png)
isActive : Boolean (1 1); -- source
Class![](/se-interop/image/down-arrow.png)
nestedClassifier :
Classifier (0 *); -- source
Class![](/se-interop/image/down-arrow.png)
ownedAttribute :
Property (0 *); -- source
Class![](/se-interop/image/down-arrow.png)
ownedOperation :
Operation (0 *); -- source
Class![](/se-interop/image/down-arrow.png)
ownedReception :
Reception (0 *); -- source
Class![](/se-interop/image/down-arrow.png)
superClass :
Class (0 *); -- source
Class![](/se-interop/image/down-arrow.png)
ownedPort :
Port (0 *); -- source
EncapsulatedClassifier![](/se-interop/image/down-arrow.png)
ownedConnector :
Connector (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png)
part :
Property (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png)
role :
ConnectableElement (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png)
classifierBehavior :
Behavior (0 1); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png)
interfaceRealization :
InterfaceRealization (0 *); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png)
ownedBehavior :
Behavior (0 *); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png)
ownedTrigger :
Trigger (0 *); -- source
BehavioredClassifier![](/se-interop/image/right-arrow.png)
attribute :
Property (0 *); -- source
Classifier Refers to all of the Properties that are direct (i.e. not inherited or
imported) attributes of the classifier.
{
readonly}
Derived union with sources: (ownedAttribute)
Subsets: Classifier.feature
![](/se-interop/image/down-arrow.png)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png)
representation :
CollaborationUse (0 1); -- source
Classifier References a collaboration use which indicates the collaboration that represents
this classifier.
Subsets: Classifier.collaborationUse
![](/se-interop/image/down-arrow.png)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/right-arrow.png)
useCase :
UseCase (0 *); -- source
Classifier The set of use cases for which this Classifier is the subject.
Opposite: UseCase.subject
![](/se-interop/image/down-arrow.png)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png)
visibility :
VisibilityKind (1 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/right-arrow.png)
isLeaf : Boolean (1 1); -- source
RedefinableElement Indicates whether it is possible to further redefine a RedefinableElement.
If the value is true, then it is not possible to further redefine the RedefinableElement.
Note that this property is preserved through package merge operations;
that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false)
must be preserved in the resulting RedefinableElement of a package merge
operation where a RedefinableElement with isLeaf=false is merged with a
matching RedefinableElement with isLeaf=true: the resulting RedefinableElement
will have isLeaf=false. Default value is false.
Default value: FALSE
![](/se-interop/image/down-arrow.png)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/right-arrow.png)
namespace :
Namespace (0 1); -- source
NamedElement Specifies the namespace that owns the NamedElement.
{
readonly}
Derived union with sources: (package)
Subsets: Element.owner
Opposite: Namespace.ownedMember
![](/se-interop/image/down-arrow.png)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: CMOF_14_3_18() : Boolean;
Description: 14.3 [18] Class must not be active
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/class-is-active
Expression: not isActive
Signature: CMOF_14_3_15() : Boolean;
Description: 14.3 [15] Only one member attribute of a Class may have isId=true.
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/class-has-more-than-one-id
Expression: self->closure(general)->union(self)->attribute->asSet()->select(p:Property | p.isID)->size() < 2
Signature: CMOF_14_3_10a() : Boolean;
Description: 14.3 [10] The following properties must be empty
Class::nestedClassifier
Property::qualifier
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/class-has-nested-classifier
Expression: nestedClassifier->isEmpty()
Signature: passive_class() : Boolean;
Description: A passive class may not own receptions.
Expression: not self.isActive implies self.ownedReception.isEmpty()
Operations:
Signature: inherit(inhs : NamedElement; ) : NamedElement;
Description: The inherit operation is overridden to exclude redefined properties.
The OCL used here is not normative.Editor's notes: reject not excluding
Expression: result = inhs->reject(inh |
ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))
Original: result = inhs->excluding(inh |
ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))
Send questions or comments to
[email protected].