Class UML 2.4.1::Extension
Description:
An extension is used to indicate that the properties of a metaclass are
extended through a stereotype, and gives the ability to flexibly add (and
later remove) stereotypes to classes.
Direct Superclasses: AssociationDirect Subclasses: Class Precedence List: Extension,
Association,
Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
RedefinableElement,
NamedElement,
TemplateableElement,
Relationship,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
isRequired : Boolean (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
metaclass :
Class (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedEnd :
ExtensionEnd (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
endType :
Type (1 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
isDerived : Boolean (1 1); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
memberEnd :
Property (2 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
navigableOwnedEnd :
Property (0 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
collaborationUse :
CollaborationUse (0 *); -- source
ClassifierReferences the collaboration uses owned by the classifier.
{
composite}
Subsets: Element.ownedElement
![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
general :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
isAbstract : Boolean (1 1); -- source
ClassifierIf true, the Classifier does not provide a complete declaration and can
typically not be instantiated. An abstract classifier is intended to be
used by other classifiers e.g. as the target of general metarelationships
or generalization relationships.
Default value: FALSE
![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
visibility :
VisibilityKind (1 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
relatedElement :
Element (1 *); -- source
Relationship![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=35868%3ADA45B54BA349DA9FE43ACEFCD14C6BE1)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: non_owned_end() : Boolean;
Description: The non-owned end of an Extension is typed by a Class.
The OCL used here is not normative.Editor's notes: metaclass, not metaclass(). Classifier, not class
Expression: metaclass->notEmpty() and metaclass.oclIsKindOf(Classifier)
Original: metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class)
Signature: is_binary() : Boolean;
Description: An Extension is binary, i.e., it has only two memberEnds.
Expression: memberEnd->size() = 2
Operations:
Signature: metaclassEnd() : Property;
Description: The query metaclassEnd() returns the Property that is typed by a metaclass
(as opposed to a stereotype).
The OCL used here is not normative.Editor's notes: Expression: result = (memberEnd - OrderedSet{ownedEnd}).asOrderedSet()->first()
Original: result = memberEnd->reject(ownedEnd)
Signature: metaclass.1() : Class;
Description: The query metaclass() returns the metaclass that is being extended (as
opposed to the extending stereotype).
Expression: result = metaclassEnd().type
Signature: isRequired.1() : Boolean;
Description: The query isRequired() is true if the owned end has a multiplicity with
the lower bound of 1.
Expression: result = (ownedEnd->lowerBound() = 1)
Send questions or comments to
[email protected].