Previous | UML Classes | Table of Contents | UML Packages | Next |
A redefinable template signature supports the addition of formal template parameters in a specialization of a template classifier.
•
TemplateSignature (from Templates) on page 655
•
RedefinableElement (from Kernel ) on page 132
Description
RedefinableTemplateSignature specializes both TemplateSignature and RedefinableElement in order to allow the addition of new
formal template parameters in the context of a specializing template Classifier.
Attributes
No additional attributes
Associations
• classifier : Classifier[1] The classifier that owns this template signature. Subsets RedefinableElement ::redefinitionContext and Template::templatedElement.
• / inheritedParameter : TemplateParameter[*] The formal template parameters of the extendedSignature. Subsets Template::parameter.
• extendedSignature : RedefinableTemplateSignature[*] The template signature that is extended by this template signature. Subsets RedefinableElement ::redefinedElement.
Constraints
[1] The inherited parameters are the parameters of the extended template signature.
inheritedParameter = if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif
Additional Operations
[1] The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition
is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with
a redefined template signature, since redefinition only adds new formal parameters.
RedefineableTemplateSignature::isConsistentWith(redefinee: RedefinableElement ): Boolean;pre: redefinee.isRedefinitionContextValid(self)isConsistentWith = redefinee.oclIsKindOf(RedefineableTemplateSignature)
Semantics
A RedefinableTemplateSignature may extend an inherited template signature in order to specify additional formal template parameters
that apply within the templateable classifier that owns this RedefinableTemplateSignature. All the formal template parameters
of the extended signatures are included as formal template parameters of the extending signature, along with any parameters
locally specified for the extending signature.
Notation
Notation as for redefinition in general.
PackageTemplates
The Package templates diagram supports the specification of template packages and package template parameters.