Software Disclaimer

Class UML 2.4.1::RedefinableTemplateSignature

Description:

A redefinable template signature supports the addition of formal template parameters in a specialization of a template classifier.

Direct Superclasses: TemplateSignature, RedefinableElement

Direct Subclasses:

Class Precedence List: RedefinableTemplateSignature, TemplateSignature, RedefinableElement, NamedElement, Element

Properties:

classifier : Classifier (1 1); -- source RedefinableTemplateSignature
extendedSignature : RedefinableTemplateSignature (0 *); -- source RedefinableTemplateSignature

The template signature that is extended by this template signature.
Subsets: RedefinableElement.redefinedElement

inheritedParameter : TemplateParameter (0 *); -- source RedefinableTemplateSignature
ownedParameter : TemplateParameter (0 *); -- source TemplateSignature
parameter : TemplateParameter (1 *); -- source TemplateSignature
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
visibility : VisibilityKind (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: inherited_parameters() : Boolean;
Description: The inherited parameters are the parameters of the extended template signature.
Expression: if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif

Operations:

Signature: isConsistentWith(redefinee : RedefinableElement; ) : Boolean;
Description: 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.
The OCL used here is not normative.
Editor's notes: Redefinable not Redefineable
Expression: result = redefinee.oclIsKindOf(RedefinableTemplateSignature)
Original: result = redefinee.oclIsKindOf(RedefineableTemplateSignature) redefinee.isRedefinitionContextValid(self)



Send questions or comments to [email protected].