Software Disclaimer

Class UML 2.3::Stereotype

Description:

A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass.

Direct Superclasses: Class

Direct Subclasses:

Class Precedence List: Stereotype, Class, EncapsulatedClassifier, StructuredClassifier, BehavioredClassifier, Classifier, TemplateableElement, Type, PackageableElement, ParameterableElement, Namespace, RedefinableElement, NamedElement, Element

Properties:

icon : Image (0 *); -- source Stereotype
profile : Profile (0 1); -- source Stereotype
extension : Extension (0 *); -- source Class
isAbstract : Boolean (1 1); -- source Class
isActive : Boolean (1 1); -- source Class
nestedClassifier : Classifier (0 *); -- source Class
ownedAttribute : Property (0 *); -- source Class
ownedOperation : Operation (0 *); -- source Class
ownedReception : Reception (0 *); -- source Class
superClass : Class (0 *); -- source Class
ownedPort : Port (0 *); -- source EncapsulatedClassifier
ownedConnector : Connector (0 *); -- source StructuredClassifier

References the connectors owned by the classifier.
{composite}
Subsets: Classifier.feature, Namespace.ownedMember

part : Property (0 *); -- source StructuredClassifier
role : ConnectableElement (0 *); -- source StructuredClassifier
classifierBehavior : Behavior (0 1); -- source BehavioredClassifier
interfaceRealization : InterfaceRealization (0 *); -- source BehavioredClassifier
ownedBehavior : Behavior (0 *); -- source BehavioredClassifier
ownedTrigger : Trigger (0 *); -- source BehavioredClassifier
attribute : Property (0 *); -- source Classifier
collaborationUse : CollaborationUse (0 *); -- source Classifier

References the collaboration uses owned by the classifier.
{composite}
Subsets: Element.ownedElement

feature : Feature (0 *); -- source Classifier
generalization : Generalization (0 *); -- source Classifier
inheritedMember : NamedElement (0 *); -- source Classifier
isFinalSpecialization : Boolean (1 1); -- source Classifier

If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
Default value: FALSE

ownedTemplateSignature : RedefinableTemplateSignature (0 1); -- source Classifier

The optional template signature specifying the formal template parameters.
{composite}
Subsets: Element.ownedElement
Redefines: TemplateableElement.ownedTemplateSignature
Opposite: RedefinableTemplateSignature.classifier

ownedUseCase : UseCase (0 *); -- source Classifier
powertypeExtent : GeneralizationSet (0 *); -- source Classifier
redefinedClassifier : Classifier (0 *); -- source Classifier
representation : CollaborationUse (0 1); -- source Classifier
substitution : Substitution (0 *); -- source Classifier
templateParameter : ClassifierTemplateParameter (0 1); -- source Classifier
useCase : UseCase (0 *); -- source Classifier
templateBinding : TemplateBinding (0 *); -- source TemplateableElement
package : Package (0 1); -- source Type
visibility : VisibilityKind (1 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
elementImport : ElementImport (0 *); -- source Namespace
importedMember : PackageableElement (0 *); -- source Namespace
member : NamedElement (0 *); -- source Namespace
ownedMember : NamedElement (0 *); -- source Namespace

A collection of NamedElements owned by the Namespace.
{composite, readonly}
Derived union with sources: (ownedRule, ownedUseCase, ownedTrigger, ownedBehavior, ownedConnector, ownedReception, ownedOperation, ownedAttribute, nestedClassifier)
Subsets: Element.ownedElement, Namespace.member
Opposite: NamedElement.namespace

ownedRule : Constraint (0 *); -- source Namespace
packageImport : PackageImport (0 *); -- source Namespace
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
clientDependency : Dependency (0 *); -- source NamedElement

Indicates the dependencies that reference the client.
Opposite: Dependency.client

name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: name_not_clash() : Boolean;
Description: Stereotype names should not clash with keyword names for the extended model element.
Expression: true

Signature: generalize() : Boolean;
Description: A Stereotype may only generalize or specialize another Stereotype.
Expression: generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype))

Operations:

Signature: profile.1() : Profile;
Description: A stereotype must be contained, directly or indirectly, in a profile.
Expression: result = self.containingProfile()

Signature: containingProfile() : Profile;
Description: The query containingProfile returns the closest profile directly or indirectly containing this stereotype.
The OCL used here is not normative.
Editor's notes: This calls Package.containingProfile() which has a bug.
Expression: true
Original: result = self.namespace.oclAsType(Package).containingProfile()



Send questions or comments to [email protected].