Skip to content

Commit

Permalink
[Implement] IRedefinableTemplateSignature
Browse files Browse the repository at this point in the history
  • Loading branch information
samatstariongroup committed Aug 20, 2024
1 parent f85a7ff commit 7a5f6c0
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
24 changes: 24 additions & 0 deletions uml4net/POCO/Classification/IRedefinableTemplateSignature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@

namespace uml4net.POCO.Classification
{
using System.Collections.Generic;

using uml4net.Decorators;
using uml4net.POCO.CommonStructure;

/// <summary>
Expand All @@ -28,5 +31,26 @@ namespace uml4net.POCO.Classification
/// </summary>
public interface IRedefinableTemplateSignature : IRedefinableElement, ITemplateSignature
{
/// <summary>
/// The Classifier that owns this RedefinableTemplateSignature.
/// </summary>
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1)]
[RedefinedProperty("TemplateSignature-template")]
[SubsettedProperty("RedefinableElement-redefinitionContext")]
public IClassifier Classifier { get; set; }

/// <summary>
/// The signatures extended by this RedefinableTemplateSignature.
/// </summary>
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue)]
[SubsettedProperty("RedefinableElement-redefinedElement")]
public List<IRedefinableTemplateSignature> ExtendedSignature { get; set; }

/// <summary>
/// The formal template parameters of the extended signatures.
/// </summary>
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue, isReadOnly:true, isDerived:true)]
[SubsettedProperty("TemplateSignature-parameter")]
public ITemplateParameter InheritedParameter { get; }
}
}
25 changes: 25 additions & 0 deletions uml4net/POCO/Classification/RedefinableTemplateSignature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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();

/// <summary>
/// The Classifier that owns this RedefinableTemplateSignature.
/// </summary>
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1)]
[RedefinedProperty("TemplateSignature-template")]
[SubsettedProperty("RedefinableElement-redefinitionContext")]
[Implements(implementation: "IRedefinableTemplateSignature.Classifier")]
public IClassifier Classifier { get; set; }

/// <summary>
/// The signatures extended by this RedefinableTemplateSignature.
/// </summary>
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: int.MaxValue)]
[SubsettedProperty("RedefinableElement-redefinedElement")]
[Implements(implementation: "IRedefinableTemplateSignature.ExtendedSignature")]
public List<IRedefinableTemplateSignature> ExtendedSignature { get; set; }

/// <summary>
/// The formal template parameters of the extended signatures.
/// </summary>
[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();
}
}

0 comments on commit 7a5f6c0

Please sign in to comment.