Class UML 2.5::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,
Relationship,
Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
TemplateableElement,
RedefinableElement,
NamedElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
isRequired : Boolean (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
metaclass :
Class (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedEnd :
ExtensionEnd (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
endType :
Type (1 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
isDerived : Boolean (1 1); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
memberEnd :
Property (2 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
navigableOwnedEnd :
Property (0 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
relatedElement :
Element (1 *); -- source
Relationship![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
general :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
isAbstract : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
ClassifierThe optional RedefinableTemplateSignature specifying the formal template
parameters.
{
composite}
Subsets: Element.ownedElement
Redefines: TemplateableElement.ownedTemplateSignature
Opposite: RedefinableTemplateSignature.classifier
![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
substitution :
Substitution (0 *); -- source
ClassifierThe Substitutions owned by this Classifier.
{
composite}
Subsets: Element.ownedElement, NamedElement.clientDependency
Opposite: Substitution.substitutingClassifier
![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/right-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
member :
NamedElement (0 *); -- source
NamespaceA collection of NamedElements identifiable within the Namespace, either
by being owned or by being introduced by importing or inheritance.
{
readonly}
Derived union with sources: (ownedRule, ownedMember, importedMember, ownedUseCase, inheritedMember, feature, attribute, memberEnd, ownedEnd)
![](/se-interop/image/right-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedMember :
NamedElement (0 *); -- source
NamespaceA collection of NamedElements owned by the Namespace.
{
composite,
readonly}
Derived union with sources: (ownedRule, ownedUseCase, ownedEnd)
Subsets: Element.ownedElement, Namespace.member
Opposite: NamedElement.namespace
![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
visibility :
VisibilityKind (0 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=1109%3AA0C33213858D4EEF2502FE6AE1AA5DEC)
owner :
Element (0 1); -- source
ElementConstraints:
No additional constraints.
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: Rewritten to find the memberEnd that is a ExtensionEnd.
Expression: memberEnd->select(type.oclIsKindOf(Stereotype))->any(true)
Original: result = (memberEnd->reject(p | ownedEnd->includes(p.oclAsType(ExtensionEnd)))->any(true))
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.oclAsType(Class))
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].