Software Disclaimer

Abstract Class UML 2.3::TemplateableElement


A templateable element is an element that can optionally be defined as a template and bound to other templates.

Direct Superclasses: Element

Direct Subclasses: StringExpression, Package, Operation, Classifier

Class Precedence List: TemplateableElement, Element


ownedTemplateSignature : TemplateSignature (0 1); -- source TemplateableElement

The optional template signature specifying the formal template parameters.
Subsets: Element.ownedElement
Opposite: TemplateSignature.template

templateBinding : TemplateBinding (0 *); -- source TemplateableElement
ownedComment : Comment (0 *); -- source Element

The Comments owned by this element.
Subsets: Element.ownedElement

ownedElement : Element (0 *); -- source Element

The Elements owned by this element.
{composite, readonly}
Derived union with sources: (ownedComment, templateBinding, ownedTemplateSignature)
Opposite: Element.owner

owner : Element (0 1); -- source Element


No additional constraints.


Signature: parameterableElements() : ParameterableElement;
Description: The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.
The OCL used here is not normative.
Editor's notes: added () to allOwnedElements.
Expression: result = allOwnedElements()->select(oclIsKindOf(ParameterableElement))
Original: result = allOwnedElements->select(oclIsKindOf(ParameterableElement))

Signature: isTemplate() : Boolean;
Description: The query isTemplate() returns whether this templateable element is actually a template.
Expression: result = ownedTemplateSignature->notEmpty()

Send questions or comments to