Previous UML Classes Table of Contents UML Packages Next


17.5.6 TemplateSignature

Templates


   A template signature bundles the set of formal template parameters for a templated element.

*Generalizations

   

    Element (from Kernel ) on page 63

   Description

   A TemplateSignature is owned by a TemplateableElement and has one or more TemplateParameters that define the signature for binding this template.

   Attributes

   No additional attributes

   Associations

   • ownedParameter : TemplateParameter[*] The formal template parameters that are owned by this template signature. Subsets parameter and Element::ownedElement.

Issue 8517 - indicate that this is an ordered set

   Constraints

   [1] Parameters must own the elements they parameter or those elements must be owned by the element being templated.

   templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)

Issue 8517 - remove incorrect constraint

   Semantics

   A TemplateSignature specifies the set of formal template parameters for the associated templated element. The formal template parameters specify the elements that may be substituted in a binding of the template.

Issue 8517 - replace ‘parameter’ with ‘signature’

   There are constraints on what may be parametered by a template parameter. Either the signature owns the parametered element, or the element is owned, directly or indirectly, by the template subclasses of TemplateSignature can add additional rules constraining what a parameter can reference in the context of a particular kind of template.

   Notation

   See TemplateableElement for a description of how the template parameters are shown as part of the notation for the template.

   Examples

   See TemplateableElement.

   ClassifierTemplates

Issue 8517 -add cross-ref to corresponding figure

   The Classifier templates diagram (Figure 17.18 on page 657) specifies the abstract mechanisms that support defining classifier templates, bound classifiers, and classifier template parameters. Specific subclasses of Classifier must also specialize one or more of the abstract metaclasses defined in this diagram in order to expose these capabilities in a concrete manner.

   Issue 8265 - add ClassifierTemplateParameter::defaultClassifier and ClassifierTemplateParameter::constrainingClassifier 8527, 8528- add ‘redefines’ constraints to ClassifierTemplateParameter::parameteredElement and Classifier::parameter 9110 - rename ‘parameter’ to ‘templateParameter’ and add constraint

Figure 17.18 - Classifier templates