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=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
isRequired : Boolean (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
metaclass :
Class (1 1); -- source
Extension![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedEnd :
ExtensionEnd (1 1); -- source
Extension![](/se-interop/image/right-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
endType :
Type (1 *); -- source
AssociationThe Classifiers that are used as types of the ends of the Association.
{
readonly,
derived}
Subsets: Relationship.relatedElement
![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
isDerived : Boolean (1 1); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
memberEnd :
Property (2 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
navigableOwnedEnd :
Property (0 *); -- source
Association![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
relatedElement :
Element (1 *); -- source
Relationship![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/right-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
feature :
Feature (0 *); -- source
ClassifierSpecifies each Feature directly defined in the classifier. Note that there
may be members of the Classifier that are of the type Feature but are not
included, e.g., inherited features.
{
readonly}
Derived union with sources: (attribute, ownedEnd)
Subsets: Namespace.member
Opposite: Feature.featuringClassifier
![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
general :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
isAbstract : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
visibility :
VisibilityKind (0 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=56809%3A7FDBBBFABCD22F2C245AB9902F992E20)
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].