diff --git a/uml4net/POCO/Classification/IRedefinableTemplateSignature.cs b/uml4net/POCO/Classification/IRedefinableTemplateSignature.cs index 3c7d4bbd..3f56015c 100644 --- a/uml4net/POCO/Classification/IRedefinableTemplateSignature.cs +++ b/uml4net/POCO/Classification/IRedefinableTemplateSignature.cs @@ -20,6 +20,9 @@ namespace uml4net.POCO.Classification { + using System.Collections.Generic; + + using uml4net.Decorators; using uml4net.POCO.CommonStructure; /// @@ -28,5 +31,26 @@ namespace uml4net.POCO.Classification /// public interface IRedefinableTemplateSignature : IRedefinableElement, ITemplateSignature { + /// + /// The Classifier that owns this RedefinableTemplateSignature. + /// + [Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1)] + [RedefinedProperty("TemplateSignature-template")] + [SubsettedProperty("RedefinableElement-redefinitionContext")] + public IClassifier Classifier { get; set; } + + /// + /// The signatures extended by this RedefinableTemplateSignature. + /// + [Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue)] + [SubsettedProperty("RedefinableElement-redefinedElement")] + public List ExtendedSignature { get; set; } + + /// + /// The formal template parameters of the extended signatures. + /// + [Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue, isReadOnly:true, isDerived:true)] + [SubsettedProperty("TemplateSignature-parameter")] + public ITemplateParameter InheritedParameter { get; } } } diff --git a/uml4net/POCO/Classification/RedefinableTemplateSignature.cs b/uml4net/POCO/Classification/RedefinableTemplateSignature.cs index 57ebf0de..24f3a787 100644 --- a/uml4net/POCO/Classification/RedefinableTemplateSignature.cs +++ b/uml4net/POCO/Classification/RedefinableTemplateSignature.cs @@ -122,5 +122,30 @@ public class RedefinableTemplateSignature : IRedefinableTemplateSignature [Property(aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isReadOnly: true, isDerived: true, isDerivedUnion: true)] [Implements(implementation: "IRedefinableElement.RedefinitionContext")] public IClassifier RedefinitionContext => throw new NotImplementedException(); + + /// + /// The Classifier that owns this RedefinableTemplateSignature. + /// + [Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1)] + [RedefinedProperty("TemplateSignature-template")] + [SubsettedProperty("RedefinableElement-redefinitionContext")] + [Implements(implementation: "IRedefinableTemplateSignature.Classifier")] + public IClassifier Classifier { get; set; } + + /// + /// The signatures extended by this RedefinableTemplateSignature. + /// + [Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue)] + [SubsettedProperty("RedefinableElement-redefinedElement")] + [Implements(implementation: "IRedefinableTemplateSignature.ExtendedSignature")] + public List ExtendedSignature { get; set; } + + /// + /// The formal template parameters of the extended signatures. + /// + [Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue, isReadOnly: true, isDerived: true)] + [SubsettedProperty("TemplateSignature-parameter")] + [Implements(implementation: "IRedefinableTemplateSignature.InheritedParameter")] + public ITemplateParameter InheritedParameter => throw new NotImplementedException(); } }