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
templateBinding : TemplateBinding (0 *); -- source TemplateableElement

The optional bindings from this element to templates.
Subsets: Element.ownedElement
Opposite: TemplateBinding.boundElement

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