diff --git a/uml4net.Extensions/MultiplicityElementExtensions.cs b/uml4net.Extensions/MultiplicityElementExtensions.cs
new file mode 100644
index 00000000..8a743551
--- /dev/null
+++ b/uml4net.Extensions/MultiplicityElementExtensions.cs
@@ -0,0 +1,77 @@
+// -------------------------------------------------------------------------------------------------
+//
+//
+// Copyright 2019-2024 Starion Group S.A.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, softwareUseCases
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+// ------------------------------------------------------------------------------------------------
+
+namespace uml4net.Extensions
+{
+ using System;
+
+ using uml4net.POCO.CommonStructure;
+ using uml4net.POCO.Values;
+
+ ///
+ /// Extension methods for interface
+ ///
+ public static class MultiplicityElementExtensions
+ {
+ ///
+ /// Queries the upper value of the
+ ///
+ ///
+ /// The for which the lower value is queried
+ ///
+ ///
+ /// an integer
+ ///
+ public static string QueryUpperValue(this IMultiplicityElement multiplicityElement)
+ {
+ switch (multiplicityElement.UpperValue)
+ {
+ case null:
+ return "1";
+
+ case ILiteralInteger literalInteger:
+
+ return literalInteger.Value.ToString();
+
+ case ILiteralUnlimitedNatural unlimitedNatural:
+
+ if (!unlimitedNatural.Value.HasValue)
+ {
+ return "0";
+ }
+ else
+ {
+ if (unlimitedNatural.Value == int.MaxValue)
+ {
+ return "*";
+ }
+ else
+ {
+ return unlimitedNatural.Value.ToString();
+ }
+ }
+
+ default:
+ throw new NotSupportedException("");
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/uml4net.Extensions/PropertyExtensions.cs b/uml4net.Extensions/PropertyExtensions.cs
index 24a88b96..4579877e 100644
--- a/uml4net.Extensions/PropertyExtensions.cs
+++ b/uml4net.Extensions/PropertyExtensions.cs
@@ -43,7 +43,21 @@ public static class PropertyExtensions
///
public static bool QueryIsEnum(this IProperty property)
{
- return property.DataType is IEnumeration;
+ return property.Type is IEnumeration;
+ }
+
+ ///
+ /// Queries whether the type of the is an
+ ///
+ ///
+ /// The subject
+ ///
+ ///
+ /// true of the type is a , false if not
+ ///
+ public static bool QueryIsPrimitiveType(this IProperty property)
+ {
+ return property.Type is IPrimitiveType;
}
///
@@ -140,9 +154,27 @@ public static string QueryTypeName(this IProperty property)
///
/// A
///
+ ///
+ /// The and are concrete subtypes of the
+ /// concrete type
+ ///
public static bool QueryIsValueProperty(this IProperty property)
{
- return property.Type is IPrimitiveType or IEnumeration;
+ return property.Type is IDataType;
+ }
+
+ ///
+ /// Queries a value indicating whether the specified is a reference type
+ ///
+ ///
+ /// The subject
+ ///
+ ///
+ /// A
+ ///
+ public static bool QueryIsReferenceProperty(this IProperty property)
+ {
+ return property.Type is not IDataType;
}
///
diff --git a/uml4net.Reporting.Tests/Generators/ModelInspectorTestFixture.cs b/uml4net.Reporting.Tests/Generators/ModelInspectorTestFixture.cs
index 43877b78..81ec9e06 100644
--- a/uml4net.Reporting.Tests/Generators/ModelInspectorTestFixture.cs
+++ b/uml4net.Reporting.Tests/Generators/ModelInspectorTestFixture.cs
@@ -20,17 +20,30 @@
namespace uml4net.Reporting.Tests.Generators
{
+ using System;
+ using System.IO;
+ using System.Linq;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
-
+ using POCO.Packages;
+ using Reporting.Generators;
using Serilog;
+ using xmi;
[TestFixture]
public class ModelInspectorTestFixture
{
private ILoggerFactory loggerFactory;
+ private ModelInspector modelInspector;
+
+ private string modelPath;
+
+ private FileInfo modelFileInfo;
+
+ private FileInfo reportFileInfo;
+
[OneTimeSetUp]
public void OneTimeSetUp()
{
@@ -44,5 +57,71 @@ public void OneTimeSetUp()
builder.AddSerilog();
});
}
+
+ [SetUp]
+ public void SetUp()
+ {
+ this.modelPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestData", "UML.xmi");
+ this.modelFileInfo = new FileInfo(modelPath);
+
+ var reportPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "inspection-report.txt");
+ this.reportFileInfo = new FileInfo(reportPath);
+ }
+
+ [Test]
+ public void Verify_that_Inspection_report_can_be_executed()
+ {
+ var rootPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestData");
+
+ var reader = XmiReaderBuilder.Create()
+ .UsingSettings(x => x.LocalReferenceBasePath = rootPath)
+ .WithLogger(this.loggerFactory)
+ .Build();
+
+ var packages = reader.Read(Path.Combine(rootPath, "UML.xmi"));
+
+ var rootPackage = packages.Single();
+
+ this.modelInspector = new ModelInspector(this.loggerFactory);
+
+ var report = this.modelInspector.Inspect(rootPackage, true);
+
+ Log.Logger.Information(report);
+
+ Assert.That(report, Is.Not.Null.Or.Empty);
+ }
+
+ [Test]
+ public void Verify_that_Inspection_report_can_be_generated()
+ {
+ this.modelInspector = new ModelInspector(this.loggerFactory);
+
+ Assert.That(() => this.modelInspector.GenerateReport(this.modelFileInfo, this.reportFileInfo), Throws.Nothing);
+ }
+
+ [Test]
+ public void Verify_that_inspect_class_returns_expected_result()
+ {
+ var rootPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestData");
+
+ var reader = XmiReaderBuilder.Create()
+ .UsingSettings(x => x.LocalReferenceBasePath = rootPath)
+ .WithLogger(this.loggerFactory)
+ .Build();
+
+ var packages = reader.Read(Path.Combine(rootPath, "UML.xmi"));
+
+ var rootPackage = packages.Single();
+
+ var classificationPackage = rootPackage.PackagedElement.OfType().Single(x => x.Name == "Classification") ;
+
+ this.modelInspector = new ModelInspector(this.loggerFactory);
+
+ var inspectionReport = this.modelInspector.Inspect(classificationPackage, "Property");
+
+ Assert.That(inspectionReport, Is.Not.Empty);
+
+ Log.Logger.Information(inspectionReport);
+ }
}
}
\ No newline at end of file
diff --git a/uml4net.Reporting.Tests/uml4net.Reporting.Tests.csproj b/uml4net.Reporting.Tests/uml4net.Reporting.Tests.csproj
index 298a9571..4006e6fd 100644
--- a/uml4net.Reporting.Tests/uml4net.Reporting.Tests.csproj
+++ b/uml4net.Reporting.Tests/uml4net.Reporting.Tests.csproj
@@ -38,4 +38,16 @@
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
diff --git a/uml4net.Reporting/Generators/HtmlReportGenerator.cs b/uml4net.Reporting/Generators/HtmlReportGenerator.cs
index 13306a8b..d2a996ad 100644
--- a/uml4net.Reporting/Generators/HtmlReportGenerator.cs
+++ b/uml4net.Reporting/Generators/HtmlReportGenerator.cs
@@ -63,7 +63,7 @@ public string QueryReportType()
/// Generates a table that contains all classes, attributes and their documentation
///
///
- /// /// the path to the Ecore model of which the report is to be generated.
+ /// /// the path to the UML model of which the report is to be generated.
///
///
/// the content of an HTML report in a string
@@ -77,7 +77,7 @@ public string GenerateReport(FileInfo modelPath)
/// Generates a table that contains all classes, attributes and their documentation
///
///
- /// the path to the Ecore model of which the report is to be generated.
+ /// the path to the UML model of which the report is to be generated.
///
///
/// the path, including filename, where the output is to be generated.
diff --git a/uml4net.Reporting/Generators/IHtmlReportGenerator.cs b/uml4net.Reporting/Generators/IHtmlReportGenerator.cs
index a44e7537..2624bb4b 100644
--- a/uml4net.Reporting/Generators/IHtmlReportGenerator.cs
+++ b/uml4net.Reporting/Generators/IHtmlReportGenerator.cs
@@ -24,7 +24,7 @@ namespace uml4net.Reporting.Generators
///
/// The purpose of the is to generate an HTML report of an
- /// Ecore Model
+ /// UML Model
///
public interface IHtmlReportGenerator : IReportGenerator
{
@@ -32,7 +32,7 @@ public interface IHtmlReportGenerator : IReportGenerator
/// Generates a table that contains all classes, attributes and their documentation
///
///
- /// /// the path to the Ecore model of which the report is to be generated.
+ /// /// the path to the UML model of which the report is to be generated.
///
///
/// the content of an HTML report in a string
diff --git a/uml4net.Reporting/Generators/IMarkdownReportGenerator.cs b/uml4net.Reporting/Generators/IMarkdownReportGenerator.cs
index 2b5584f4..2804ed94 100644
--- a/uml4net.Reporting/Generators/IMarkdownReportGenerator.cs
+++ b/uml4net.Reporting/Generators/IMarkdownReportGenerator.cs
@@ -24,7 +24,7 @@ namespace uml4net.Reporting.Generators
///
/// The purpose of the is to generate a Markdown report of an
- /// Ecore Model
+ /// UML Model
///
public interface IMarkdownReportGenerator : IReportGenerator
{
@@ -32,7 +32,7 @@ public interface IMarkdownReportGenerator : IReportGenerator
/// Generates a Markdown document with a table that contains all classes, attributes and their documentation
///
///
- /// the path to the Ecore model of which the report is to be generated.
+ /// the path to the UML model of which the report is to be generated.
///
///
/// the content of a Markdown report in a string
diff --git a/uml4net.Reporting/Generators/IModelInspector.cs b/uml4net.Reporting/Generators/IModelInspector.cs
index 7d4c6caf..516e3574 100644
--- a/uml4net.Reporting/Generators/IModelInspector.cs
+++ b/uml4net.Reporting/Generators/IModelInspector.cs
@@ -24,7 +24,7 @@ namespace uml4net.Reporting.Generators
///
/// The purpose of the is to iterate through the model and report on the various kinds of
- /// patters that exist in the ECore model that need to be taken into account for code-generation
+ /// patters that exist in the UML model that need to be taken into account for code-generation
///
public interface IModelInspector : IReportGenerator
{
@@ -67,7 +67,7 @@ public interface IModelInspector : IReportGenerator
/// The which needs to be inspected
///
///
- /// A value indicating whether the sub s need to be Analyzed as well
+ /// A value indicating whether the sub s need to be Analyzed as well
///
///
/// returns a report of the classes and properties that do not contain any documentation
diff --git a/uml4net.Reporting/Generators/IReportGenerator.cs b/uml4net.Reporting/Generators/IReportGenerator.cs
index b3383051..7920c6ac 100644
--- a/uml4net.Reporting/Generators/IReportGenerator.cs
+++ b/uml4net.Reporting/Generators/IReportGenerator.cs
@@ -25,7 +25,7 @@ namespace uml4net.Reporting.Generators
///
/// The purpose of the is to generate a report of an
- /// Ecore Model
+ /// UML Model
///
public interface IReportGenerator
{
@@ -33,7 +33,7 @@ public interface IReportGenerator
/// Generates a report that contains all classes, attributes and their documentation
///
///
- /// the path to the Ecore model of which the report is to be generated.
+ /// the path to the UML model of which the report is to be generated.
///
///
/// the path, including filename, where the output is to be generated.
diff --git a/uml4net.Reporting/Generators/IXlReportGenerator.cs b/uml4net.Reporting/Generators/IXlReportGenerator.cs
index 0d801e0b..7173e480 100644
--- a/uml4net.Reporting/Generators/IXlReportGenerator.cs
+++ b/uml4net.Reporting/Generators/IXlReportGenerator.cs
@@ -22,7 +22,7 @@ namespace uml4net.Reporting.Generators
{
///
/// The purpose of the is to generate reports of an
- /// Ecore Model
+ /// UML Model
///
public interface IXlReportGenerator : IReportGenerator
{
diff --git a/uml4net.Reporting/Generators/MarkdownReportGenerator.cs b/uml4net.Reporting/Generators/MarkdownReportGenerator.cs
index 253bd646..ae9f949d 100644
--- a/uml4net.Reporting/Generators/MarkdownReportGenerator.cs
+++ b/uml4net.Reporting/Generators/MarkdownReportGenerator.cs
@@ -29,7 +29,7 @@ namespace uml4net.Reporting.Generators
///
/// The purpose of the is to generate a Markdown report of an
- /// Ecore Model
+ /// UML Model
///
public class MarkdownReportGenerator : HandleBarsReportGenerator, IMarkdownReportGenerator
{
@@ -64,7 +64,7 @@ public string QueryReportType()
/// Generates a table that contains all classes, attributes and their documentation
///
///
- /// /// the path to the Ecore model of which the report is to be generated.
+ /// /// the path to the UML model of which the report is to be generated.
///
///
/// the content of an HTML report in a string
@@ -78,7 +78,7 @@ public string GenerateReport(FileInfo modelPath)
/// Generates a Markdown document with a table that contains all classes, attributes and their documentation
///
///
- /// the path to the Ecore model of which the report is to be generated.
+ /// the path to the UML model of which the report is to be generated.
///
///
/// the path, including filename, where the output is to be generated.
diff --git a/uml4net.Reporting/Generators/ModelInspector.cs b/uml4net.Reporting/Generators/ModelInspector.cs
index a773a5e6..cce82d64 100644
--- a/uml4net.Reporting/Generators/ModelInspector.cs
+++ b/uml4net.Reporting/Generators/ModelInspector.cs
@@ -26,16 +26,19 @@ namespace uml4net.Reporting.Generators
using System.IO;
using System.Linq;
using System.Text;
- using Extensions;
+
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
+ using uml4net.Extend;
+ using uml4net.Extensions;
+ using uml4net.POCO.Classification;
using uml4net.POCO.Packages;
using uml4net.POCO.StructuredClassifiers;
-
+
///
/// The purpose of the is to iterate through the model and report on the various kinds of
- /// patters that exist in the ECore model that need to be taken into account for code-generation
+ /// patters that exist in the UML model that need to be taken into account for code-generation
///
public class ModelInspector : ReportGenerator, IModelInspector
{
@@ -50,7 +53,7 @@ public class ModelInspector : ReportGenerator, IModelInspector
private readonly List valueTypes = new();
- private readonly List enums = new();
+ private readonly List enumerations = new();
///
/// Initializes a new instance of the class.
@@ -76,7 +79,7 @@ public string QueryReportType()
///
/// Inspect the content of the provided and returns the variation
- /// of data-types, enums and multiplicity as an Analysis report
+ /// of data-types, enumerations and multiplicity as an Analysis report
///
///
/// The that needs to be inspected
@@ -89,7 +92,12 @@ public string QueryReportType()
///
public string Inspect(IPackage package, bool recursive = false)
{
- this.logger.LogInformation("Start UML Model Inspection at IPackage {0}:{1}", package.XmiId, package.Name);
+ this.logger.LogInformation("Start UML Model Inspection at Package {0}:{1}", package.XmiId, package.Name);
+
+ this.interestingClasses.Clear();
+ this.referenceTypes.Clear();
+ this.valueTypes.Clear();
+ this.enumerations.Clear();
var sw = Stopwatch.StartNew();
@@ -113,13 +121,13 @@ public string Inspect(IPackage package, bool recursive = false)
sb.AppendLine($"reference type: {referenceType}");
}
- this.logger.LogInformation("MULTIPLICITY RESULTS - Inspecting the Enums");
+ this.logger.LogInformation("MULTIPLICITY RESULTS - Inspecting the Enumerations");
- var orderedEnums = this.enums.OrderBy(x => x);
+ var orderedEnumerations = this.enumerations.OrderBy(x => x);
- foreach (var @enum in orderedEnums)
+ foreach (var enumeration in orderedEnumerations)
{
- sb.AppendLine($"enum type: {@enum}");
+ sb.AppendLine($"enumeration type: {enumeration}");
}
this.logger.LogInformation("MULTIPLICITY RESULTS - Inspecting the Value Types");
@@ -144,86 +152,85 @@ public string Inspect(IPackage package, bool recursive = false)
sb.AppendLine("");
- this.logger.LogInformation("ECore Model Inspection of EPackage {0}:{1} finished in {2} [ms]", package.XmiId, package.Name, sw.ElapsedMilliseconds);
+ this.logger.LogInformation("UML Model Inspection of Package {0}:{1} finished in {2} [ms]", package.XmiId, package.Name, sw.ElapsedMilliseconds);
return sb.ToString();
}
///
- /// Recursively inspects the content of the provided
+ /// Recursively inspects the content of the provided
/// and adds the reported results to the provided
///
///
- /// The which needs to be inspected
+ /// The which needs to be inspected
///
///
/// The to which the results of hte inspection are reported
///
///
- /// A value indicating whether the sub s need to be inspected as well
+ /// A value indicating whether the sub s need to be inspected as well
///
private void Inspect(IPackage package, StringBuilder sb, bool recursive)
{
- this.logger.LogInformation("Inspecting the contents of EPackage {0}:{1}", package.XmiId, package.Name);
+ this.logger.LogInformation("Inspecting the contents of Package {0}:{1}", package.XmiId, package.Name);
- foreach (var eClass in package.OwnedType.OfType().OrderBy(x => x.Name))
+ foreach (var @class in package.PackagedElement.OfType().OrderBy(x => x.Name))
{
- //this.logger.LogTrace("Inspecting EClass {0}:{1}", eClass.Identifier, eClass.Name);
+ this.logger.LogTrace("Inspecting Class {0}:{1}", @class.XmiId, @class.Name);
- foreach (var property in eClass.OwnedAttribute)
+ foreach (var property in @class.OwnedAttribute)
{
if (property.IsDerived)
{
continue;
}
- //if (property is EReference reference)
- //{
- // var referenceType = reference.IsContainment ? $"{reference.LowerBound}:{reference.UpperBound}:containment" : $"{reference.LowerBound}:{reference.UpperBound}";
-
- // if (!this.referenceTypes.Contains(referenceType))
- // {
- // this.logger.LogTrace("Inspecting reference type {0}", referenceType);
-
- // this.referenceTypes.Add(referenceType);
- // this.interestingClasses.Add(eClass);
-
- // sb.AppendLine($"{package.Name}.{eClass.Name} -- REF {referenceType}");
- // }
- //}
-
- //if (structuralFeature is EAttribute attribute)
- //{
- // if (structuralFeature.QueryIsEnum())
- // {
- // var @enum = $"{attribute.LowerBound}:{attribute.UpperBound}";
-
- // this.logger.LogTrace("Inspecting enum attribute {0}", @enum);
-
- // if (!this.enums.Contains(@enum))
- // {
- // this.enums.Add(@enum);
- // this.interestingClasses.Add(eClass);
-
- // sb.AppendLine($"{eClass.Name} -- ENUM {@enum}");
- // }
+ if (property.QueryIsReferenceProperty())
+ {
+ var referenceType = property.QueryIsContainment() ? $"{property.Lower}:{property.QueryUpperValue()}:containment" : $"{property.Lower}:{property.QueryUpperValue()}";
- // }
- // else
- // {
- // var valueType = $"{attribute.EType.Name}:{attribute.LowerBound}:{attribute.UpperBound}";
+ if (!this.referenceTypes.Contains(referenceType))
+ {
+ this.logger.LogTrace("Inspecting reference type {0}", referenceType);
- // if (!this.valueTypes.Contains(valueType))
- // {
- // this.logger.LogTrace("Inspecting value attribute {0}", valueType);
+ this.referenceTypes.Add(referenceType);
+ this.interestingClasses.Add(@class);
- // this.valueTypes.Add(valueType);
- // this.interestingClasses.Add(eClass);
+ sb.AppendLine($"{package.Name}.{@class.Name} -- REF {referenceType}");
+ }
+ }
- // sb.AppendLine($"{eClass.Name} -- VAL {valueType}");
- // }
- // }
- //}
+ if (property.QueryIsValueProperty())
+ {
+ if (property.QueryIsEnum())
+ {
+ var enumeration = $"{property.Lower}:{property.QueryUpperValue()}";
+
+ this.logger.LogTrace("Inspecting Enumeration property {0}", enumeration);
+
+ if (!this.enumerations.Contains(enumeration))
+ {
+ this.enumerations.Add(enumeration);
+ this.interestingClasses.Add(@class);
+
+ sb.AppendLine($"{@class.Name} -- ENUM {enumeration}");
+ }
+ }
+ else
+ {
+ var valueType = $"{property.QueryTypeName()}:{property.Lower}:{ property.QueryUpperValue()}";
+
+ if (!this.valueTypes.Contains(valueType))
+ {
+ this.logger.LogTrace("Inspecting value property {0}", valueType);
+
+ this.valueTypes.Add(valueType);
+ this.interestingClasses.Add(@class);
+
+ sb.AppendLine($"{@class.Name} -- VAL {valueType}");
+ }
+ }
+ }
}
}
@@ -237,11 +244,11 @@ private void Inspect(IPackage package, StringBuilder sb, bool recursive)
}
///
- /// Inspect the provided (by name) that is contained in the
- /// and returns the variation of data-types, enums and multiplicity as an Analysis report
+ /// Inspect the provided (by name) that is contained in the
+ /// and returns the variation of data-types, enumerations and multiplicity as an Analysis report
///
///
- /// The that contains the that
+ /// The that contains the that
/// is to be inspected
///
///
@@ -252,82 +259,86 @@ private void Inspect(IPackage package, StringBuilder sb, bool recursive)
///
public string Inspect(IPackage package, string className)
{
- this.logger.LogInformation("Start ECore named Class '{2}' Inspection at EPackage {0}:{1}", package.XmiId, package.Name, className);
+ this.logger.LogInformation("Start UML named Class '{2}' Inspection at Package {0}:{1}", package.XmiId, package.Name, className);
var sw = Stopwatch.StartNew();
var sb = new StringBuilder();
- var eClass = package.OwnedType.OfType().Single(x => x.Name == className);
+ var @class = package.PackagedElement.OfType().Single(x => x.Name == className);
- sb.AppendLine($"{package.Name}.{eClass.Name}:");
+ sb.AppendLine($"{package.Name}.{@class.Name}:");
sb.AppendLine("----------------------------------");
- //foreach (var structuralFeature in eClass.AllEStructuralFeaturesOrderByName)
- //{
- // if (structuralFeature.Derived || structuralFeature.Transient)
- // {
- // continue;
- // }
-
- // //if (structuralFeature is EReference reference)
- // //{
- // // string referenceType;
- // // if (reference.IsContainment)
- // // {
- // // referenceType = $"{reference.Name}:{reference.EType.Name} [{reference.LowerBound}..{reference.UpperBound}] - CONTAINED REFERENCE TYPE";
- // // }
- // // else
- // // {
- // // referenceType = $"{reference.Name}:{reference.EType.Name} [{reference.LowerBound}..{reference.UpperBound}] - REFERENCE TYPE";
- // // }
-
- // // sb.AppendLine(referenceType);
- // //}
-
- // //if (structuralFeature is EAttribute attribute)
- // //{
- // // if (structuralFeature.QueryIsEnum())
- // // {
- // // var @enum = $"{attribute.Name}:{attribute.EType.Name} [{attribute.LowerBound}..{attribute.UpperBound}] - ENUM TYPE";
- // // sb.AppendLine(@enum);
- // // }
- // // else
- // // {
- // // var valueType = $"{attribute.Name}:{attribute.EType.Name} [{attribute.LowerBound}..{attribute.UpperBound}] - VALUETYPE";
- // // sb.AppendLine(valueType);
- // // }
- // //}
- //}
+ foreach (var property in @class.OwnedAttribute.OrderBy(x => x.Name))
+ {
+ if (property.IsDerived)
+ {
+ continue;
+ }
+
+ if (property.QueryIsReferenceProperty())
+ {
+ string referenceType;
+
+ if (property.QueryIsContainment())
+ {
+ referenceType = $"{property.Name}:{property.QueryTypeName()} [{property.Lower}..{property.QueryUpperValue()}] - CONTAINED REFERENCE TYPE";
+ }
+ else
+ {
+ referenceType = $"{property.Name}:{property.QueryTypeName()} [{property.Lower}..{property.QueryUpperValue()}] - REFERENCE TYPE";
+ }
+
+ sb.AppendLine(referenceType);
+ }
+
+ if (property.QueryIsValueProperty())
+ {
+ this.logger.LogInformation(property.Name);
+
+ if (property.QueryIsEnum())
+ {
+ var enumeration = $"{property.Name}:{property.QueryTypeName()} [{property.Lower}..{property.QueryUpperValue()}] - ENUM TYPE";
+ sb.AppendLine(enumeration);
+ }
+ else
+ {
+ var valueType = $"{property.Name}:{property.QueryTypeName()} [{property.Lower}..{property.QueryUpperValue()}] - VALUETYPE";
+ sb.AppendLine(valueType);
+ }
+ }
+ }
sb.AppendLine("-DERIVED--------------------------");
- //foreach (var structuralFeature in eClass.AllEStructuralFeaturesOrderByName)
- //{
- // if (structuralFeature.Derived)
- // {
- // //if (structuralFeature is EReference reference)
- // //{
- // // var referenceType = $"{reference.Name}:{reference.EType.Name} [{reference.LowerBound}..{reference.UpperBound}] - REFERENCE TYPE";
- // // sb.AppendLine(referenceType);
- // //}
-
- // //if (structuralFeature is EAttribute attribute)
- // //{
- // // if (structuralFeature.QueryIsEnum())
- // // {
- // // var @enum = $"{attribute.Name}:{attribute.EType.Name} [{attribute.LowerBound}..{attribute.UpperBound}] - ENUM TYPE";
- // // sb.AppendLine(@enum);
- // // }
- // // else
- // // {
- // // var valueType = $"{attribute.Name}:{attribute.EType.Name} [{attribute.LowerBound}..{attribute.UpperBound}] - VALUETYPE";
- // // sb.AppendLine(valueType);
- // // }
- // //}
- // }
- //}
-
- this.logger.LogInformation("ECore named Class '{2}' Inspection at EPackage {0}:{1} finished in {3} [ms]", package.XmiId, package.Name, className, sw.ElapsedMilliseconds);
+ foreach (var property in @class.OwnedAttribute.OrderBy(x => x.Name))
+ {
+ if (property.IsDerived)
+ {
+
+ if (property.QueryIsReferenceProperty())
+ {
+ var referenceType = $"{property.Name}:{property.QueryTypeName()} [{property.Lower}..{property.QueryUpperValue()}] - REFERENCE TYPE";
+ sb.AppendLine(referenceType);
+ }
+
+ if (property.QueryIsValueProperty())
+ {
+ if (property.QueryIsEnum())
+ {
+ var enumeration = $"{property.Name}:{property.QueryTypeName()} [{property.Lower}..{property.QueryUpperValue()}] - ENUM TYPE";
+ sb.AppendLine(enumeration);
+ }
+ else
+ {
+ var valueType = $"{property.Name} : {property.QueryTypeName()} [{property.Lower} .. {property.QueryUpperValue()}] - VALUETYPE";
+ sb.AppendLine(valueType);
+ }
+ }
+ }
+ }
+
+ this.logger.LogInformation("UML named Class '{2}' Inspection at Package {0}:{1} finished in {3} [ms]", package.XmiId, package.Name, className, sw.ElapsedMilliseconds);
return sb.ToString();
}
@@ -347,7 +358,7 @@ public string Inspect(IPackage package, string className)
///
public string AnalyzeDocumentation(IPackage package, bool recursive = false)
{
- this.logger.LogInformation("Start inspection of EPackage documentation {0}:{1}", package.XmiId, package.Name);
+ this.logger.LogInformation("Start inspection of Package documentation {0}:{1}", package.XmiId, package.Name);
var sw = Stopwatch.StartNew();
@@ -360,7 +371,7 @@ public string AnalyzeDocumentation(IPackage package, bool recursive = false)
sb.AppendLine("");
- this.logger.LogInformation("Inspection of EPackage documentation {0}:{1} finished in {3} [ms]", package.XmiId, package.Name, sw.ElapsedMilliseconds);
+ this.logger.LogInformation("Inspection of Package documentation {0}:{1} finished in {3} [ms]", package.XmiId, package.Name, sw.ElapsedMilliseconds);
return sb.ToString();
}
@@ -370,31 +381,34 @@ public string AnalyzeDocumentation(IPackage package, bool recursive = false)
///
///
///
- /// The which needs to be inspected
+ /// The which needs to be inspected
+ ///
+ ///
+ /// The to which the analysis results are written
///
///
- /// A value indicating whether the sub s need to be Analyzed as well
+ /// A value indicating whether the sub s need to be Analyzed as well
///
private void AnalyzeDocumentation(IPackage package, StringBuilder sb, bool recursive = false)
{
- sb.AppendLine($"Package.Class:Feature");
+ sb.AppendLine("Package.Class:Property");
sb.AppendLine();
- //foreach (var eClass in package.EClassifiers.OfType().OrderBy(x => x.Name))
- //{
- // if (string.IsNullOrEmpty(eClass.QueryRawDocumentation()))
- // {
- // sb.AppendLine($"{package.Name}.{eClass.Name}");
- // }
-
- // foreach (var eStructuralFeature in eClass.EStructuralFeaturesOrderByName)
- // {
- // if (string.IsNullOrEmpty(eStructuralFeature.QueryRawDocumentation()))
- // {
- // sb.AppendLine($"{package.Name}.{eClass.Name}:{eStructuralFeature.Name}");
- // }
- // }
- //}
+ foreach (var @class in package.PackagedElement.OfType().OrderBy(x => x.Name))
+ {
+ if (string.IsNullOrEmpty(@class.QueryRawDocumentation()))
+ {
+ sb.AppendLine($"{package.Name}.{@class.Name}");
+ }
+
+ foreach (var property in @class.OwnedAttribute.OrderBy(x => x.Name))
+ {
+ if (string.IsNullOrEmpty(property.QueryRawDocumentation()))
+ {
+ sb.AppendLine($"{package.Name}.{@class.Name}:{property.Name}");
+ }
+ }
+ }
if (recursive)
{
@@ -430,7 +444,7 @@ public override Tuple IsValidReportExtension(FileInfo outputPath)
/// Generates a table that contains all classes, attributes and their documentation
///
///
- /// the path to the Ecore model of which the report is to be generated.
+ /// the path to the UML model of which the report is to be generated.
///
///
/// the path, including filename, where the output is to be generated.
@@ -451,14 +465,16 @@ public void GenerateReport(FileInfo modelPath, FileInfo outputPath)
this.logger.LogInformation("Start Generating Inspection Report");
- //var rootPackage = this.LoadRootPackage(modelPath);
- IPackage rootPackage = null;
-
+ var packages = this.LoadPackages(modelPath, modelPath.Directory);
+
var result = new StringBuilder();
- result.Append(this.ReportHeader());
- result.Append(this.Inspect(rootPackage, true));
- result.Append(this.AnalyzeDocumentation(rootPackage, true));
+ foreach (var package in packages)
+ {
+ result.Append(this.ReportHeader());
+ result.Append(this.Inspect(package, true));
+ result.Append(this.AnalyzeDocumentation(package, true));
+ }
if (outputPath.Exists)
{
@@ -484,9 +500,9 @@ private string ReportHeader()
var header = new StringBuilder();
header.AppendLine("The purpose of this report is to provide an overview of the");
- header.AppendLine("contents of an ECore model.");
+ header.AppendLine("contents of a UML model.");
header.AppendLine("");
- header.AppendLine("1. This report shows the variation of value-types reference-types");
+ header.AppendLine("1. This report shows the variation of value-types, reference-types");
header.AppendLine(" and enumerations");
header.AppendLine("2. The report provides an overview of the variation of");
header.AppendLine(" used multiplicities. ");
diff --git a/uml4net.Reporting/Generators/ReportGenerator.cs b/uml4net.Reporting/Generators/ReportGenerator.cs
index 3e1ef889..5f0807b5 100644
--- a/uml4net.Reporting/Generators/ReportGenerator.cs
+++ b/uml4net.Reporting/Generators/ReportGenerator.cs
@@ -26,8 +26,10 @@ namespace uml4net.Reporting.Generators
using Microsoft.Extensions.Logging.Abstractions;
using System;
- using System.Resources;
- using POCO.Packages;
+ using System.Collections.Generic;
+
+ using uml4net.POCO.Packages;
+ using uml4net.xmi;
///
/// abstract class from which all report generators need to derive
@@ -68,5 +70,31 @@ protected ReportGenerator(ILoggerFactory loggerFactory = null)
/// Either stating that the extension is valid or not.
///
public abstract Tuple IsValidReportExtension(FileInfo outputPath);
+
+ ///
+ /// Loads the root UML package from the provided model
+ ///
+ ///
+ /// the path to the Uml model that is to be loaded
+ ///
+ ///
+ /// The base directory path used as the local root for resolving referenced XMI files.
+ ///
+ ///
+ /// a list of s
+ ///
+ protected IEnumerable LoadPackages(FileInfo modelPath, DirectoryInfo rootDirectory)
+ {
+ this.logger.LogInformation("Loading UML model from {0}", modelPath.FullName);
+
+ using var reader = XmiReaderBuilder.Create()
+ .UsingSettings(x => x.LocalReferenceBasePath = rootDirectory.FullName)
+ .WithLogger(this.loggerFactory)
+ .Build();
+
+ var packages = reader.Read(modelPath.FullName);
+
+ return packages;
+ }
}
}
\ No newline at end of file
diff --git a/uml4net.Reporting/Generators/XlReportGenerator.cs b/uml4net.Reporting/Generators/XlReportGenerator.cs
index 18f95d3a..f270647a 100644
--- a/uml4net.Reporting/Generators/XlReportGenerator.cs
+++ b/uml4net.Reporting/Generators/XlReportGenerator.cs
@@ -36,7 +36,7 @@ namespace uml4net.Reporting.Generators
///
/// The purpose of the is to generate reports of an
- /// Ecore Model
+ /// UML Model
///
public class XlReportGenerator : ReportGenerator, IXlReportGenerator
{
@@ -71,7 +71,7 @@ public string QueryReportType()
/// Generates a table that contains all classes, attributes and their documentation
///
///
- /// the path to the Ecore model of which the report is to be generated.
+ /// the path to the UML model of which the report is to be generated.
///
///
/// the path, including filename, where the output is to be generated.
@@ -143,19 +143,19 @@ private void AddInfoSheet(XLWorkbook workbook, IPackage rootPackage)
}
///
- /// Adds a worksheet to the workbook with EClass data
+ /// Adds a worksheet to the workbook with Class data
///
///
- /// The target to which the EClass worksheet is added
+ /// The target to which the Class worksheet is added
///
///
- /// The s that contain the EClass instances to report on
+ /// The s that contain the Class instances to report on
///
private void AddIClassSheet(XLWorkbook workbook, IEnumerable packages)
{
this.logger.LogDebug("Add IClass reports");
- var classWorksheet = workbook.Worksheets.Add("EClass");
+ var classWorksheet = workbook.Worksheets.Add("Class");
var dataTable = new DataTable();
diff --git a/uml4net.Reporting/Payload/HandlebarsPayload.cs b/uml4net.Reporting/Payload/HandlebarsPayload.cs
index fb80305c..a1ad7c9e 100644
--- a/uml4net.Reporting/Payload/HandlebarsPayload.cs
+++ b/uml4net.Reporting/Payload/HandlebarsPayload.cs
@@ -38,16 +38,16 @@ public class HandlebarsPayload
/// initializes an instance of the class.
///
///
- /// The root of the ECore model
+ /// The root of the UML model
///
///
- /// the s in the ECore model
+ /// the s in the UML model
///
///
- /// the s in the ECore model
+ /// the s in the UML model
///
///
- /// the es in the ECore model
+ /// the es in the UML model
///
public HandlebarsPayload(IPackage rootPackage, IEnumerable enums, IEnumerable dataTypes, IEnumerable classes)
{
diff --git a/uml4net.Reporting/uml4net.Reporting.csproj b/uml4net.Reporting/uml4net.Reporting.csproj
index bad3b3b0..8d7a4371 100644
--- a/uml4net.Reporting/uml4net.Reporting.csproj
+++ b/uml4net.Reporting/uml4net.Reporting.csproj
@@ -38,6 +38,7 @@
+
\ No newline at end of file
diff --git a/uml4net.xmi.Tests/AssemblerTestFixture.cs b/uml4net.xmi.Tests/AssemblerTestFixture.cs
index e42bb762..68ffe2bc 100644
--- a/uml4net.xmi.Tests/AssemblerTestFixture.cs
+++ b/uml4net.xmi.Tests/AssemblerTestFixture.cs
@@ -24,6 +24,8 @@ namespace uml4net.xmi.Tests
using Microsoft.Extensions.Logging;
using NUnit.Framework;
using System;
+ using POCO.Classification;
+ using POCO.SimpleClassifiers;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.StructuredClassifiers;
using uml4net.POCO.Values;
@@ -245,5 +247,30 @@ public void Synchronize_ShouldThrow_WhenElementNotIReferenceable()
Assert.That(classElement.NameExpression, Is.Null);
});
}
+
+ [Test]
+ public void Synchronize_verify_that_type_is_set()
+ {
+ var property = new Property()
+ {
+ XmiId = "Property-aggregation",
+ Name = "aggregation"
+ };
+
+ property.SingleValueReferencePropertyIdentifiers.Add("type", "AggregationKind");
+
+ var enumeration = new Enumeration()
+ {
+ XmiId = "AggregationKind",
+ Name = "AggregationKind",
+ };
+
+ this.cache.Add(property.XmiId, property);
+ this.cache.Add(enumeration.XmiId, enumeration);
+
+ this.assembler.Synchronize();
+
+ Assert.That(property.Type, Is.EqualTo(enumeration));
+ }
}
}
diff --git a/uml4net.xmi.Tests/UMLXmiReaderTestFixture.cs b/uml4net.xmi.Tests/UMLXmiReaderTestFixture.cs
index 3266b0a6..5481c879 100644
--- a/uml4net.xmi.Tests/UMLXmiReaderTestFixture.cs
+++ b/uml4net.xmi.Tests/UMLXmiReaderTestFixture.cs
@@ -26,6 +26,7 @@ namespace uml4net.xmi.Tests
using Microsoft.Extensions.Logging;
using NUnit.Framework;
+
using uml4net.POCO.Values;
using uml4net.POCO.Packages;
using uml4net.POCO.SimpleClassifiers;
@@ -139,6 +140,12 @@ public void Verify_that_UML_XMI_can_be_read()
var classLowerValue = (ILiteralInteger)classOwnedAttribute.LowerValue;
Assert.That(classLowerValue.Value, Is.EqualTo(0));
+
+ var classificationPackage = package.PackagedElement.OfType().Single(x => x.Name == "Classification");
+
+ var aggregationKind = classificationPackage.PackagedElement.OfType().Single(x => x.Name == "AggregationKind");
+
+ Assert.That(aggregationKind.XmiId, Is.EqualTo("AggregationKind"));
}
}
}
diff --git a/uml4net.xmireader/Cache/Assembler.cs b/uml4net.xmireader/Cache/Assembler.cs
index 87ac0de1..498d71c2 100644
--- a/uml4net.xmireader/Cache/Assembler.cs
+++ b/uml4net.xmireader/Cache/Assembler.cs
@@ -126,9 +126,27 @@ public void ResolveReferences(IXmiElement element)
/// true if the referenced element was successfully retrieved; otherwise, false.
private bool TryGetReferencedElement(string referenceIdKey, out IXmiElement element)
{
- return this.cache.TryResolveContext(referenceIdKey, out var resolvedContextAndResource)
- ? this.cache.TryGetValue(resolvedContextAndResource.Context, resolvedContextAndResource.ResourceId, out element)
- : this.cache.Cache.TryGetValue(referenceIdKey, out element);
+ var isContextResolved = this.cache.TryResolveContext(referenceIdKey, out var resolvedContextAndResource);
+
+ if (isContextResolved)
+ {
+ var isValueFound = this.cache.TryGetValue(resolvedContextAndResource.Context, resolvedContextAndResource.ResourceId, out element);
+ return isValueFound;
+ }
+
+ foreach (var globalCacheKey in this.cache.GlobalCache.Keys)
+ {
+ var cache = this.cache.GlobalCache[globalCacheKey];
+ var isFallbackFound = cache.TryGetValue(referenceIdKey, out element);
+
+ if (isFallbackFound)
+ {
+ return true;
+ }
+ }
+
+ element = null;
+ return false;
}
///
diff --git a/uml4net.xmireader/Readers/IXmiReader.cs b/uml4net.xmireader/Readers/IXmiReader.cs
index fd76a8d3..a72a63b3 100644
--- a/uml4net.xmireader/Readers/IXmiReader.cs
+++ b/uml4net.xmireader/Readers/IXmiReader.cs
@@ -32,7 +32,7 @@ namespace uml4net.xmi.Readers
public interface IXmiReader : IDisposable
{
///
- /// Reads the content of a UML XMI 2.5.1 file asynchronously.
+ /// Reads the content of a UML XMI 2.5.1 file
///
///
/// The URI of the XMI file to be read.
@@ -43,7 +43,7 @@ public interface IXmiReader : IDisposable
IEnumerable Read(string fileUri);
///
- /// Reads the content of a UML XMI 2.5.1 stream asynchronously.
+ /// Reads the content of a UML XMI 2.5.1 stream.
///
///
/// The that contains the XMI content to be read.
diff --git a/uml4net.xmireader/Readers/SimpleClassifiers/EnumerationReader.cs b/uml4net.xmireader/Readers/SimpleClassifiers/EnumerationReader.cs
index f6bc41e4..b9cb4209 100644
--- a/uml4net.xmireader/Readers/SimpleClassifiers/EnumerationReader.cs
+++ b/uml4net.xmireader/Readers/SimpleClassifiers/EnumerationReader.cs
@@ -107,12 +107,10 @@ public override IEnumeration Read(XmlReader xmlReader)
{
var enumerationLiteral = this.EnumerationLiteralReader.Read(ownedLiteralXmlReader);
enumeration.OwnedLiteral.Add(enumerationLiteral);
-
- this.Logger.LogInformation("ClassReader.ownedRule not yet implemented");
}
break;
default:
- throw new NotImplementedException($"ClassReader: {xmlReader.LocalName}");
+ throw new NotImplementedException($"EnumerationReader: {xmlReader.LocalName}");
}
}
}
diff --git a/uml4net.xmireader/Readers/XmiElementReader.cs b/uml4net.xmireader/Readers/XmiElementReader.cs
index 8664af56..fef9c33f 100644
--- a/uml4net.xmireader/Readers/XmiElementReader.cs
+++ b/uml4net.xmireader/Readers/XmiElementReader.cs
@@ -37,7 +37,7 @@ public abstract class XmiElementReader where TXmiElement : IXmiElem
protected readonly ILogger> Logger;
///
- /// The (injected) used to setup logging
+ /// The (injected) used cache the s
///
protected readonly IXmiReaderCache Cache;
diff --git a/uml4net.xmireader/Readers/XmiReader.cs b/uml4net.xmireader/Readers/XmiReader.cs
index f5bcaa83..80a60dbd 100644
--- a/uml4net.xmireader/Readers/XmiReader.cs
+++ b/uml4net.xmireader/Readers/XmiReader.cs
@@ -92,7 +92,7 @@ public XmiReader(IAssembler assembler, IXmiReaderCache cache, ILogger
}
///
- /// Reads the content of a UML XMI 2.5.1 file asynchronously.
+ /// Reads the content of a UML XMI 2.5.1 file.
///
///
/// The URI of the XMI file to be read.
@@ -116,7 +116,7 @@ public IEnumerable Read(string fileUri)
}
///
- /// Reads the content of a UML XMI 2.5.1 stream asynchronously.
+ /// Reads the content of a UML XMI 2.5.1 stream.
///
///
/// The that contains the XMI content to be read.
@@ -130,7 +130,7 @@ public IEnumerable Read(Stream stream)
}
///
- /// Reads the content of a UML XMI 2.5.1 stream asynchronously.
+ /// Reads the content of a UML XMI 2.5.1 stream.
///
///
/// The that contains the XMI content to be read.
diff --git a/uml4net/Extend/ClassifierExtensions.cs b/uml4net/Extend/ClassifierExtensions.cs
new file mode 100644
index 00000000..be07f8f0
--- /dev/null
+++ b/uml4net/Extend/ClassifierExtensions.cs
@@ -0,0 +1,44 @@
+// -------------------------------------------------------------------------------------------------
+//
+//
+// Copyright 2019-2024 Starion Group S.A.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, softwareUseCases
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+// ------------------------------------------------------------------------------------------------
+
+namespace uml4net.Extend
+{
+ using System.Collections.Generic;
+ using System.Linq;
+
+ using uml4net.POCO.Classification;
+
+ ///
+ /// The class provides extensions methods for the
+ ///
+ public static class ClassifierExtensions
+ {
+ ///
+ /// Gets the collection of s that represent the generalizations of the specified .
+ ///
+ /// The for which to retrieve the generalizations.
+ ///
+ /// A list of objects that represent the generalizations of the specified .
+ /// If the element does not have any generalizations, an empty list will be returned.
+ ///
+ public static List QueryGeneral(this IClassifier element)
+ => element.Generalization.Select(x => x.General).ToList();
+ }
+}
\ No newline at end of file
diff --git a/uml4net/Extensions/ElementExtensions.cs b/uml4net/Extend/ElementExtensions.cs
similarity index 66%
rename from uml4net/Extensions/ElementExtensions.cs
rename to uml4net/Extend/ElementExtensions.cs
index c4272c7a..ac7d47c5 100644
--- a/uml4net/Extensions/ElementExtensions.cs
+++ b/uml4net/Extend/ElementExtensions.cs
@@ -18,16 +18,10 @@
//
// ------------------------------------------------------------------------------------------------
-namespace uml4net.Extensions
+namespace uml4net.Extend
{
- using POCO.Classification;
using POCO.CommonStructure;
- using System.Collections.Generic;
- using System.Linq;
- using System.Xml.Linq;
-
- using Utils;
-
+
///
/// The class provides extensions methods for the
///
@@ -42,16 +36,5 @@ public static class ElementExtensions
/// or null if the element does not have a container.
///
public static IElement QueryOwner(this IElement element) => element.Container;
-
- ///
- /// Gets the collection of s that represent the generalizations of the specified .
- ///
- /// The for which to retrieve the generalizations.
- ///
- /// A list of objects that represent the generalizations of the specified .
- /// If the element does not have any generalizations, an empty list will be returned.
- ///
- public static List QueryGeneral(this IClassifier element)
- => element.Generalization.Select(x => x.General).ToList();
}
}
diff --git a/uml4net/Extend/MultiplicityElementExtensions.cs b/uml4net/Extend/MultiplicityElementExtensions.cs
new file mode 100644
index 00000000..e953413b
--- /dev/null
+++ b/uml4net/Extend/MultiplicityElementExtensions.cs
@@ -0,0 +1,83 @@
+// -------------------------------------------------------------------------------------------------
+//
+//
+// Copyright 2019-2024 Starion Group S.A.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, softwareUseCases
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+// ------------------------------------------------------------------------------------------------
+
+namespace uml4net.Extend
+{
+ using System;
+ using POCO.Values;
+
+ using uml4net.POCO.CommonStructure;
+
+ ///
+ /// Extension methods for interface
+ ///
+ public static class MultiplicityElementExtensions
+ {
+ ///
+ /// Queries the lower value of the
+ ///
+ ///
+ /// The for which the lower value is queried
+ ///
+ ///
+ /// an integer
+ ///
+ public static int QueryLower(this IMultiplicityElement multiplicityElement)
+ {
+ switch (multiplicityElement.LowerValue)
+ {
+ case null:
+ return 0;
+
+ case ILiteralInteger literalInteger:
+ return literalInteger.Value;
+
+ default:
+ throw new NotSupportedException("");
+ }
+
+ }
+
+ ///
+ /// Queries the upper value of the
+ ///
+ ///
+ /// The for which the upper value is queried
+ ///
+ ///
+ /// an instance of or null
+ ///
+ public static ILiteralUnlimitedNatural QueryUpper(this IMultiplicityElement multiplicityElement)
+ {
+ switch (multiplicityElement.UpperValue)
+ {
+ case null:
+ return null;
+
+ case ILiteralUnlimitedNatural literalUnlimitedNatural:
+ return literalUnlimitedNatural;
+
+ default:
+ throw new NotSupportedException("UpperValue is not of type ILiteralUnlimitedNatural.");
+ }
+
+ }
+ }
+}
diff --git a/uml4net/Extensions/PackageExtensions.cs b/uml4net/Extend/PackageExtensions.cs
similarity index 96%
rename from uml4net/Extensions/PackageExtensions.cs
rename to uml4net/Extend/PackageExtensions.cs
index a2a5ce29..bd6a83e8 100644
--- a/uml4net/Extensions/PackageExtensions.cs
+++ b/uml4net/Extend/PackageExtensions.cs
@@ -18,11 +18,11 @@
//
// ------------------------------------------------------------------------------------------------
-namespace uml4net.Extensions
+namespace uml4net.Extend
{
using System.Collections.Generic;
- using System.Collections.ObjectModel;
using System.Linq;
+
using uml4net.POCO.Packages;
///
diff --git a/uml4net/POCO/Actions/AcceptCallAction.cs b/uml4net/POCO/Actions/AcceptCallAction.cs
index cc1665a6..87d36dd6 100644
--- a/uml4net/POCO/Actions/AcceptCallAction.cs
+++ b/uml4net/POCO/Actions/AcceptCallAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/AcceptEventAction.cs b/uml4net/POCO/Actions/AcceptEventAction.cs
index 727b8106..ed755920 100644
--- a/uml4net/POCO/Actions/AcceptEventAction.cs
+++ b/uml4net/POCO/Actions/AcceptEventAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ActionInputPin.cs b/uml4net/POCO/Actions/ActionInputPin.cs
index 6eb57c9d..7ad29894 100644
--- a/uml4net/POCO/Actions/ActionInputPin.cs
+++ b/uml4net/POCO/Actions/ActionInputPin.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/AddStructuralFeatureValueAction.cs b/uml4net/POCO/Actions/AddStructuralFeatureValueAction.cs
index db07fd8e..7af10e22 100644
--- a/uml4net/POCO/Actions/AddStructuralFeatureValueAction.cs
+++ b/uml4net/POCO/Actions/AddStructuralFeatureValueAction.cs
@@ -20,19 +20,16 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
-
///
/// An AddStructuralFeatureValueAction is a WriteStructuralFeatureAction for adding values to a StructuralFeature.
///
diff --git a/uml4net/POCO/Actions/AddVariableValueAction.cs b/uml4net/POCO/Actions/AddVariableValueAction.cs
index 8d99229e..b3db9705 100644
--- a/uml4net/POCO/Actions/AddVariableValueAction.cs
+++ b/uml4net/POCO/Actions/AddVariableValueAction.cs
@@ -20,19 +20,16 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
-
///
/// An AddVariableValueAction is a WriteVariableAction for adding values to a Variable.
///
diff --git a/uml4net/POCO/Actions/BroadcastSignalAction.cs b/uml4net/POCO/Actions/BroadcastSignalAction.cs
index 63ad977e..afc8e9d3 100644
--- a/uml4net/POCO/Actions/BroadcastSignalAction.cs
+++ b/uml4net/POCO/Actions/BroadcastSignalAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/CallBehaviorAction.cs b/uml4net/POCO/Actions/CallBehaviorAction.cs
index 5de60063..8f1e9a1e 100644
--- a/uml4net/POCO/Actions/CallBehaviorAction.cs
+++ b/uml4net/POCO/Actions/CallBehaviorAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/CallOperationAction.cs b/uml4net/POCO/Actions/CallOperationAction.cs
index b27c7eca..1fe96445 100644
--- a/uml4net/POCO/Actions/CallOperationAction.cs
+++ b/uml4net/POCO/Actions/CallOperationAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/Clause.cs b/uml4net/POCO/Actions/Clause.cs
index dcdee754..a2440c75 100644
--- a/uml4net/POCO/Actions/Clause.cs
+++ b/uml4net/POCO/Actions/Clause.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Actions/ClearAssociationAction.cs b/uml4net/POCO/Actions/ClearAssociationAction.cs
index 033236d3..e48ab8a0 100644
--- a/uml4net/POCO/Actions/ClearAssociationAction.cs
+++ b/uml4net/POCO/Actions/ClearAssociationAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ClearStructuralFeatureAction.cs b/uml4net/POCO/Actions/ClearStructuralFeatureAction.cs
index c8061bbb..f0f22f04 100644
--- a/uml4net/POCO/Actions/ClearStructuralFeatureAction.cs
+++ b/uml4net/POCO/Actions/ClearStructuralFeatureAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ClearVariableAction.cs b/uml4net/POCO/Actions/ClearVariableAction.cs
index 96ec8b8b..73fbe9cb 100644
--- a/uml4net/POCO/Actions/ClearVariableAction.cs
+++ b/uml4net/POCO/Actions/ClearVariableAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ConditionalNode.cs b/uml4net/POCO/Actions/ConditionalNode.cs
index cd8a4d2e..31ece230 100644
--- a/uml4net/POCO/Actions/ConditionalNode.cs
+++ b/uml4net/POCO/Actions/ConditionalNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/CreateLinkAction.cs b/uml4net/POCO/Actions/CreateLinkAction.cs
index a756d2c1..50c20760 100644
--- a/uml4net/POCO/Actions/CreateLinkAction.cs
+++ b/uml4net/POCO/Actions/CreateLinkAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/CreateLinkObjectAction.cs b/uml4net/POCO/Actions/CreateLinkObjectAction.cs
index ee9decc1..ce5e20df 100644
--- a/uml4net/POCO/Actions/CreateLinkObjectAction.cs
+++ b/uml4net/POCO/Actions/CreateLinkObjectAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/CreateObjectAction.cs b/uml4net/POCO/Actions/CreateObjectAction.cs
index 6ade87e9..53f09aa4 100644
--- a/uml4net/POCO/Actions/CreateObjectAction.cs
+++ b/uml4net/POCO/Actions/CreateObjectAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/DestroyLinkAction.cs b/uml4net/POCO/Actions/DestroyLinkAction.cs
index 78cc5542..f8cbe6be 100644
--- a/uml4net/POCO/Actions/DestroyLinkAction.cs
+++ b/uml4net/POCO/Actions/DestroyLinkAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/DestroyObjectAction.cs b/uml4net/POCO/Actions/DestroyObjectAction.cs
index 28712369..c8c52707 100644
--- a/uml4net/POCO/Actions/DestroyObjectAction.cs
+++ b/uml4net/POCO/Actions/DestroyObjectAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ExpansionNode.cs b/uml4net/POCO/Actions/ExpansionNode.cs
index 2f8894fe..f5c254a7 100644
--- a/uml4net/POCO/Actions/ExpansionNode.cs
+++ b/uml4net/POCO/Actions/ExpansionNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ExpansionRegion.cs b/uml4net/POCO/Actions/ExpansionRegion.cs
index 65e3765c..5e7a372c 100644
--- a/uml4net/POCO/Actions/ExpansionRegion.cs
+++ b/uml4net/POCO/Actions/ExpansionRegion.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/InputPin.cs b/uml4net/POCO/Actions/InputPin.cs
index 28e92554..5e73844e 100644
--- a/uml4net/POCO/Actions/InputPin.cs
+++ b/uml4net/POCO/Actions/InputPin.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/LinkEndCreationData.cs b/uml4net/POCO/Actions/LinkEndCreationData.cs
index b0e728ba..61d73ed6 100644
--- a/uml4net/POCO/Actions/LinkEndCreationData.cs
+++ b/uml4net/POCO/Actions/LinkEndCreationData.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Actions/LinkEndData.cs b/uml4net/POCO/Actions/LinkEndData.cs
index 41ed67fa..3a97b445 100644
--- a/uml4net/POCO/Actions/LinkEndData.cs
+++ b/uml4net/POCO/Actions/LinkEndData.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Actions/LinkEndDestructionData.cs b/uml4net/POCO/Actions/LinkEndDestructionData.cs
index ac83da99..5d5f866d 100644
--- a/uml4net/POCO/Actions/LinkEndDestructionData.cs
+++ b/uml4net/POCO/Actions/LinkEndDestructionData.cs
@@ -20,13 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Actions/LoopNode.cs b/uml4net/POCO/Actions/LoopNode.cs
index 8504ceae..288a715d 100644
--- a/uml4net/POCO/Actions/LoopNode.cs
+++ b/uml4net/POCO/Actions/LoopNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/OpaqueAction.cs b/uml4net/POCO/Actions/OpaqueAction.cs
index 18b12cab..ab47f218 100644
--- a/uml4net/POCO/Actions/OpaqueAction.cs
+++ b/uml4net/POCO/Actions/OpaqueAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/OutputPin.cs b/uml4net/POCO/Actions/OutputPin.cs
index 589bde0a..6600c919 100644
--- a/uml4net/POCO/Actions/OutputPin.cs
+++ b/uml4net/POCO/Actions/OutputPin.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/QualifierValue.cs b/uml4net/POCO/Actions/QualifierValue.cs
index 37fa7905..71940584 100644
--- a/uml4net/POCO/Actions/QualifierValue.cs
+++ b/uml4net/POCO/Actions/QualifierValue.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Actions/RaiseExceptionAction.cs b/uml4net/POCO/Actions/RaiseExceptionAction.cs
index e7faf491..749e05a6 100644
--- a/uml4net/POCO/Actions/RaiseExceptionAction.cs
+++ b/uml4net/POCO/Actions/RaiseExceptionAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadExtentAction.cs b/uml4net/POCO/Actions/ReadExtentAction.cs
index f5daf411..4de54056 100644
--- a/uml4net/POCO/Actions/ReadExtentAction.cs
+++ b/uml4net/POCO/Actions/ReadExtentAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadIsClassifiedObjectAction.cs b/uml4net/POCO/Actions/ReadIsClassifiedObjectAction.cs
index a0ad3fc9..69e03929 100644
--- a/uml4net/POCO/Actions/ReadIsClassifiedObjectAction.cs
+++ b/uml4net/POCO/Actions/ReadIsClassifiedObjectAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadLinkAction.cs b/uml4net/POCO/Actions/ReadLinkAction.cs
index 97a78a79..9ac89c21 100644
--- a/uml4net/POCO/Actions/ReadLinkAction.cs
+++ b/uml4net/POCO/Actions/ReadLinkAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadLinkObjectEndAction.cs b/uml4net/POCO/Actions/ReadLinkObjectEndAction.cs
index 60e35113..464e9fc0 100644
--- a/uml4net/POCO/Actions/ReadLinkObjectEndAction.cs
+++ b/uml4net/POCO/Actions/ReadLinkObjectEndAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadLinkObjectEndQualifierAction.cs b/uml4net/POCO/Actions/ReadLinkObjectEndQualifierAction.cs
index feb00df8..1581974c 100644
--- a/uml4net/POCO/Actions/ReadLinkObjectEndQualifierAction.cs
+++ b/uml4net/POCO/Actions/ReadLinkObjectEndQualifierAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadSelfAction.cs b/uml4net/POCO/Actions/ReadSelfAction.cs
index 311d491a..05757f27 100644
--- a/uml4net/POCO/Actions/ReadSelfAction.cs
+++ b/uml4net/POCO/Actions/ReadSelfAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadStructuralFeatureAction.cs b/uml4net/POCO/Actions/ReadStructuralFeatureAction.cs
index 7e836152..977b5e89 100644
--- a/uml4net/POCO/Actions/ReadStructuralFeatureAction.cs
+++ b/uml4net/POCO/Actions/ReadStructuralFeatureAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReadVariableAction.cs b/uml4net/POCO/Actions/ReadVariableAction.cs
index 78a6c132..4cc1d456 100644
--- a/uml4net/POCO/Actions/ReadVariableAction.cs
+++ b/uml4net/POCO/Actions/ReadVariableAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReclassifyObjectAction.cs b/uml4net/POCO/Actions/ReclassifyObjectAction.cs
index 31fa2c65..a8c2ac4b 100644
--- a/uml4net/POCO/Actions/ReclassifyObjectAction.cs
+++ b/uml4net/POCO/Actions/ReclassifyObjectAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReduceAction.cs b/uml4net/POCO/Actions/ReduceAction.cs
index e2b1bd9f..a3d38de8 100644
--- a/uml4net/POCO/Actions/ReduceAction.cs
+++ b/uml4net/POCO/Actions/ReduceAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/RemoveStructuralFeatureValueAction.cs b/uml4net/POCO/Actions/RemoveStructuralFeatureValueAction.cs
index c7b4185d..8c59ad30 100644
--- a/uml4net/POCO/Actions/RemoveStructuralFeatureValueAction.cs
+++ b/uml4net/POCO/Actions/RemoveStructuralFeatureValueAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/RemoveVariableValueAction.cs b/uml4net/POCO/Actions/RemoveVariableValueAction.cs
index af8b4b88..3cc6779a 100644
--- a/uml4net/POCO/Actions/RemoveVariableValueAction.cs
+++ b/uml4net/POCO/Actions/RemoveVariableValueAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ReplyAction.cs b/uml4net/POCO/Actions/ReplyAction.cs
index fd267816..87a19e02 100644
--- a/uml4net/POCO/Actions/ReplyAction.cs
+++ b/uml4net/POCO/Actions/ReplyAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/SendObjectAction.cs b/uml4net/POCO/Actions/SendObjectAction.cs
index bf804ffa..be3f8794 100644
--- a/uml4net/POCO/Actions/SendObjectAction.cs
+++ b/uml4net/POCO/Actions/SendObjectAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/SendSignalAction.cs b/uml4net/POCO/Actions/SendSignalAction.cs
index b4fba2b0..0e1b0262 100644
--- a/uml4net/POCO/Actions/SendSignalAction.cs
+++ b/uml4net/POCO/Actions/SendSignalAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/SequenceNode.cs b/uml4net/POCO/Actions/SequenceNode.cs
index 68357532..8ebbfd6c 100644
--- a/uml4net/POCO/Actions/SequenceNode.cs
+++ b/uml4net/POCO/Actions/SequenceNode.cs
@@ -20,13 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/StartClassifierBehaviorAction.cs b/uml4net/POCO/Actions/StartClassifierBehaviorAction.cs
index 50ab945b..7afdc85f 100644
--- a/uml4net/POCO/Actions/StartClassifierBehaviorAction.cs
+++ b/uml4net/POCO/Actions/StartClassifierBehaviorAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/StartObjectBehaviorAction.cs b/uml4net/POCO/Actions/StartObjectBehaviorAction.cs
index 1b92c1d2..46aa30ce 100644
--- a/uml4net/POCO/Actions/StartObjectBehaviorAction.cs
+++ b/uml4net/POCO/Actions/StartObjectBehaviorAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/StructuredActivityNode.cs b/uml4net/POCO/Actions/StructuredActivityNode.cs
index 0a38c27c..653d3eda 100644
--- a/uml4net/POCO/Actions/StructuredActivityNode.cs
+++ b/uml4net/POCO/Actions/StructuredActivityNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/TestIdentityAction.cs b/uml4net/POCO/Actions/TestIdentityAction.cs
index 4a4cdb7f..348fdf83 100644
--- a/uml4net/POCO/Actions/TestIdentityAction.cs
+++ b/uml4net/POCO/Actions/TestIdentityAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/UnmarshallAction.cs b/uml4net/POCO/Actions/UnmarshallAction.cs
index c72a798d..ed20ef6e 100644
--- a/uml4net/POCO/Actions/UnmarshallAction.cs
+++ b/uml4net/POCO/Actions/UnmarshallAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ValuePin.cs b/uml4net/POCO/Actions/ValuePin.cs
index b99a032e..604aa09e 100644
--- a/uml4net/POCO/Actions/ValuePin.cs
+++ b/uml4net/POCO/Actions/ValuePin.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/ValueSpecificationAction.cs b/uml4net/POCO/Actions/ValueSpecificationAction.cs
index efdbd7e7..d82fd9e6 100644
--- a/uml4net/POCO/Actions/ValueSpecificationAction.cs
+++ b/uml4net/POCO/Actions/ValueSpecificationAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Actions/WriteVariableAction.cs b/uml4net/POCO/Actions/WriteVariableAction.cs
index 00295655..4d1b8e47 100644
--- a/uml4net/POCO/Actions/WriteVariableAction.cs
+++ b/uml4net/POCO/Actions/WriteVariableAction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Actions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ActivityFinalNode.cs b/uml4net/POCO/Activities/ActivityFinalNode.cs
index 03fb7ee7..e2b83dd7 100644
--- a/uml4net/POCO/Activities/ActivityFinalNode.cs
+++ b/uml4net/POCO/Activities/ActivityFinalNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ActivityParameterNode.cs b/uml4net/POCO/Activities/ActivityParameterNode.cs
index 2a6c0427..4e4c0b94 100644
--- a/uml4net/POCO/Activities/ActivityParameterNode.cs
+++ b/uml4net/POCO/Activities/ActivityParameterNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ActivityPartition.cs b/uml4net/POCO/Activities/ActivityPartition.cs
index cf9e900a..91e3fb65 100644
--- a/uml4net/POCO/Activities/ActivityPartition.cs
+++ b/uml4net/POCO/Activities/ActivityPartition.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/CentralBufferNode.cs b/uml4net/POCO/Activities/CentralBufferNode.cs
index 97f9694b..d65602df 100644
--- a/uml4net/POCO/Activities/CentralBufferNode.cs
+++ b/uml4net/POCO/Activities/CentralBufferNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ControlFlow.cs b/uml4net/POCO/Activities/ControlFlow.cs
index 8fab1a4b..8aadf518 100644
--- a/uml4net/POCO/Activities/ControlFlow.cs
+++ b/uml4net/POCO/Activities/ControlFlow.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/DataStoreNode.cs b/uml4net/POCO/Activities/DataStoreNode.cs
index d1194a79..c6df58dd 100644
--- a/uml4net/POCO/Activities/DataStoreNode.cs
+++ b/uml4net/POCO/Activities/DataStoreNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/DecisionNode.cs b/uml4net/POCO/Activities/DecisionNode.cs
index 2c8bc9da..3da68dce 100644
--- a/uml4net/POCO/Activities/DecisionNode.cs
+++ b/uml4net/POCO/Activities/DecisionNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ExceptionHandler.cs b/uml4net/POCO/Activities/ExceptionHandler.cs
index fe42b23a..50233139 100644
--- a/uml4net/POCO/Activities/ExceptionHandler.cs
+++ b/uml4net/POCO/Activities/ExceptionHandler.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Activities/FlowFinalNode.cs b/uml4net/POCO/Activities/FlowFinalNode.cs
index 7abed3f8..0e688303 100644
--- a/uml4net/POCO/Activities/FlowFinalNode.cs
+++ b/uml4net/POCO/Activities/FlowFinalNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ForkNode.cs b/uml4net/POCO/Activities/ForkNode.cs
index 773399c3..5d77afd5 100644
--- a/uml4net/POCO/Activities/ForkNode.cs
+++ b/uml4net/POCO/Activities/ForkNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/InitialNode.cs b/uml4net/POCO/Activities/InitialNode.cs
index c2d011c5..d54e64da 100644
--- a/uml4net/POCO/Activities/InitialNode.cs
+++ b/uml4net/POCO/Activities/InitialNode.cs
@@ -20,13 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/InterruptibleActivityRegion.cs b/uml4net/POCO/Activities/InterruptibleActivityRegion.cs
index 2c37c9f8..fea0521c 100644
--- a/uml4net/POCO/Activities/InterruptibleActivityRegion.cs
+++ b/uml4net/POCO/Activities/InterruptibleActivityRegion.cs
@@ -20,13 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/JoinNode.cs b/uml4net/POCO/Activities/JoinNode.cs
index 895afdd9..83857c42 100644
--- a/uml4net/POCO/Activities/JoinNode.cs
+++ b/uml4net/POCO/Activities/JoinNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/MergeNode.cs b/uml4net/POCO/Activities/MergeNode.cs
index 32713e8a..e2b117a5 100644
--- a/uml4net/POCO/Activities/MergeNode.cs
+++ b/uml4net/POCO/Activities/MergeNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ObjectFlow.cs b/uml4net/POCO/Activities/ObjectFlow.cs
index b0261e0c..3dd54352 100644
--- a/uml4net/POCO/Activities/ObjectFlow.cs
+++ b/uml4net/POCO/Activities/ObjectFlow.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/ObjectNode.cs b/uml4net/POCO/Activities/ObjectNode.cs
index d8ebe7ad..cd93c5a5 100644
--- a/uml4net/POCO/Activities/ObjectNode.cs
+++ b/uml4net/POCO/Activities/ObjectNode.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Activities/Variable.cs b/uml4net/POCO/Activities/Variable.cs
index 50a3f907..3063edf5 100644
--- a/uml4net/POCO/Activities/Variable.cs
+++ b/uml4net/POCO/Activities/Variable.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Activities
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/ClassifierTemplateParameter.cs b/uml4net/POCO/Classification/ClassifierTemplateParameter.cs
index 300ea045..aa96520f 100644
--- a/uml4net/POCO/Classification/ClassifierTemplateParameter.cs
+++ b/uml4net/POCO/Classification/ClassifierTemplateParameter.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
///
diff --git a/uml4net/POCO/Classification/Generalization.cs b/uml4net/POCO/Classification/Generalization.cs
index 38da1692..73c3a21e 100644
--- a/uml4net/POCO/Classification/Generalization.cs
+++ b/uml4net/POCO/Classification/Generalization.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
///
diff --git a/uml4net/POCO/Classification/GeneralizationSet.cs b/uml4net/POCO/Classification/GeneralizationSet.cs
index 6ab1abf8..2252b1c8 100644
--- a/uml4net/POCO/Classification/GeneralizationSet.cs
+++ b/uml4net/POCO/Classification/GeneralizationSet.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/InstanceSpecification.cs b/uml4net/POCO/Classification/InstanceSpecification.cs
index 6770259d..b01c1070 100644
--- a/uml4net/POCO/Classification/InstanceSpecification.cs
+++ b/uml4net/POCO/Classification/InstanceSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/InstanceValue.cs b/uml4net/POCO/Classification/InstanceValue.cs
index b9eea66f..5c6febbd 100644
--- a/uml4net/POCO/Classification/InstanceValue.cs
+++ b/uml4net/POCO/Classification/InstanceValue.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/Operation.cs b/uml4net/POCO/Classification/Operation.cs
index 005e45d4..397719f3 100644
--- a/uml4net/POCO/Classification/Operation.cs
+++ b/uml4net/POCO/Classification/Operation.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonBehavior;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.SimpleClassifiers;
diff --git a/uml4net/POCO/Classification/OperationTemplateParameter.cs b/uml4net/POCO/Classification/OperationTemplateParameter.cs
index 29fe0675..32b372b1 100644
--- a/uml4net/POCO/Classification/OperationTemplateParameter.cs
+++ b/uml4net/POCO/Classification/OperationTemplateParameter.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
///
diff --git a/uml4net/POCO/Classification/Parameter.cs b/uml4net/POCO/Classification/Parameter.cs
index 9ed50138..f163a697 100644
--- a/uml4net/POCO/Classification/Parameter.cs
+++ b/uml4net/POCO/Classification/Parameter.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/ParameterSet.cs b/uml4net/POCO/Classification/ParameterSet.cs
index 3d564571..dbe41a58 100644
--- a/uml4net/POCO/Classification/ParameterSet.cs
+++ b/uml4net/POCO/Classification/ParameterSet.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/Property.cs b/uml4net/POCO/Classification/Property.cs
index abf5aa8e..54793cb2 100644
--- a/uml4net/POCO/Classification/Property.cs
+++ b/uml4net/POCO/Classification/Property.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.SimpleClassifiers;
using uml4net.POCO.StructuredClassifiers;
@@ -102,7 +100,7 @@ public IContainerList OwnedComment
///
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isDerived: true)]
[Implements(implementation: "IMultiplicityElement.Lower")]
- public int Lower => throw new NotImplementedException();
+ public int Lower => this.QueryLower();
///
/// The specification of the lower bound for this multiplicity.
@@ -116,7 +114,7 @@ public IContainerList OwnedComment
///
[Property(aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isDerived: true)]
[Implements(implementation: "IMultiplicityElement.Upper")]
- public ILiteralUnlimitedNatural Upper => throw new NotImplementedException();
+ public ILiteralUnlimitedNatural Upper => this.QueryUpper();
///
/// The specification of the upper bound for this multiplicity.
diff --git a/uml4net/POCO/Classification/RedefinableTemplateSignature.cs b/uml4net/POCO/Classification/RedefinableTemplateSignature.cs
index e203f15e..4df78d64 100644
--- a/uml4net/POCO/Classification/RedefinableTemplateSignature.cs
+++ b/uml4net/POCO/Classification/RedefinableTemplateSignature.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/Slot.cs b/uml4net/POCO/Classification/Slot.cs
index e0aaffbd..de26dd73 100644
--- a/uml4net/POCO/Classification/Slot.cs
+++ b/uml4net/POCO/Classification/Slot.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Classification/Substitution.cs b/uml4net/POCO/Classification/Substitution.cs
index 8277df02..39bff5c6 100644
--- a/uml4net/POCO/Classification/Substitution.cs
+++ b/uml4net/POCO/Classification/Substitution.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Classification
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonBehavior/AnyReceiveEvent.cs b/uml4net/POCO/CommonBehavior/AnyReceiveEvent.cs
index 3af56de4..aa12991c 100644
--- a/uml4net/POCO/CommonBehavior/AnyReceiveEvent.cs
+++ b/uml4net/POCO/CommonBehavior/AnyReceiveEvent.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonBehavior/CallEvent.cs b/uml4net/POCO/CommonBehavior/CallEvent.cs
index 38200e96..31665f3f 100644
--- a/uml4net/POCO/CommonBehavior/CallEvent.cs
+++ b/uml4net/POCO/CommonBehavior/CallEvent.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonBehavior/ChangeEvent.cs b/uml4net/POCO/CommonBehavior/ChangeEvent.cs
index 138f7599..05ab9e9b 100644
--- a/uml4net/POCO/CommonBehavior/ChangeEvent.cs
+++ b/uml4net/POCO/CommonBehavior/ChangeEvent.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonBehavior/FunctionBehavior.cs b/uml4net/POCO/CommonBehavior/FunctionBehavior.cs
index e9cf05ec..2ba03636 100644
--- a/uml4net/POCO/CommonBehavior/FunctionBehavior.cs
+++ b/uml4net/POCO/CommonBehavior/FunctionBehavior.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -424,7 +422,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/CommonBehavior/OpaqueBehavior.cs b/uml4net/POCO/CommonBehavior/OpaqueBehavior.cs
index 026d3d0b..5f1ccdf1 100644
--- a/uml4net/POCO/CommonBehavior/OpaqueBehavior.cs
+++ b/uml4net/POCO/CommonBehavior/OpaqueBehavior.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -425,7 +423,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/CommonBehavior/SignalEvent.cs b/uml4net/POCO/CommonBehavior/SignalEvent.cs
index 64590512..b3ebad91 100644
--- a/uml4net/POCO/CommonBehavior/SignalEvent.cs
+++ b/uml4net/POCO/CommonBehavior/SignalEvent.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonBehavior/TimeEvent.cs b/uml4net/POCO/CommonBehavior/TimeEvent.cs
index c041461e..66410049 100644
--- a/uml4net/POCO/CommonBehavior/TimeEvent.cs
+++ b/uml4net/POCO/CommonBehavior/TimeEvent.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonBehavior/Trigger.cs b/uml4net/POCO/CommonBehavior/Trigger.cs
index d136201a..22e1d612 100644
--- a/uml4net/POCO/CommonBehavior/Trigger.cs
+++ b/uml4net/POCO/CommonBehavior/Trigger.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonBehavior
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonStructure/Abstraction.cs b/uml4net/POCO/CommonStructure/Abstraction.cs
index c94fd9a9..35dcf080 100644
--- a/uml4net/POCO/CommonStructure/Abstraction.cs
+++ b/uml4net/POCO/CommonStructure/Abstraction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonStructure/Comment.cs b/uml4net/POCO/CommonStructure/Comment.cs
index 5e1d8edf..4dcf6a6f 100644
--- a/uml4net/POCO/CommonStructure/Comment.cs
+++ b/uml4net/POCO/CommonStructure/Comment.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
///
diff --git a/uml4net/POCO/CommonStructure/Constraint.cs b/uml4net/POCO/CommonStructure/Constraint.cs
index 601a920e..6e80c43f 100644
--- a/uml4net/POCO/CommonStructure/Constraint.cs
+++ b/uml4net/POCO/CommonStructure/Constraint.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonStructure/Dependency.cs b/uml4net/POCO/CommonStructure/Dependency.cs
index 948ce111..40a8a1e3 100644
--- a/uml4net/POCO/CommonStructure/Dependency.cs
+++ b/uml4net/POCO/CommonStructure/Dependency.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonStructure/ElementImport.cs b/uml4net/POCO/CommonStructure/ElementImport.cs
index 09b4b573..15b1f52a 100644
--- a/uml4net/POCO/CommonStructure/ElementImport.cs
+++ b/uml4net/POCO/CommonStructure/ElementImport.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
///
diff --git a/uml4net/POCO/CommonStructure/PackageImport.cs b/uml4net/POCO/CommonStructure/PackageImport.cs
index dc678f94..e1eb6152 100644
--- a/uml4net/POCO/CommonStructure/PackageImport.cs
+++ b/uml4net/POCO/CommonStructure/PackageImport.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/CommonStructure/Realization.cs b/uml4net/POCO/CommonStructure/Realization.cs
index 642d1fe6..116aaf9a 100644
--- a/uml4net/POCO/CommonStructure/Realization.cs
+++ b/uml4net/POCO/CommonStructure/Realization.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/CommonStructure/TemplateBinding.cs b/uml4net/POCO/CommonStructure/TemplateBinding.cs
index 4559ebe3..9ab5eb5b 100644
--- a/uml4net/POCO/CommonStructure/TemplateBinding.cs
+++ b/uml4net/POCO/CommonStructure/TemplateBinding.cs
@@ -20,14 +20,13 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
+
using uml4net.POCO.Classification;
///
diff --git a/uml4net/POCO/CommonStructure/TemplateParameter.cs b/uml4net/POCO/CommonStructure/TemplateParameter.cs
index 12a48c06..7ef7858a 100644
--- a/uml4net/POCO/CommonStructure/TemplateParameter.cs
+++ b/uml4net/POCO/CommonStructure/TemplateParameter.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
///
diff --git a/uml4net/POCO/CommonStructure/TemplateParameterSubstitution.cs b/uml4net/POCO/CommonStructure/TemplateParameterSubstitution.cs
index 2f6f3a19..6fa74bb6 100644
--- a/uml4net/POCO/CommonStructure/TemplateParameterSubstitution.cs
+++ b/uml4net/POCO/CommonStructure/TemplateParameterSubstitution.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
///
diff --git a/uml4net/POCO/CommonStructure/TemplateSignature.cs b/uml4net/POCO/CommonStructure/TemplateSignature.cs
index 0b03d12e..f5ad40d0 100644
--- a/uml4net/POCO/CommonStructure/TemplateSignature.cs
+++ b/uml4net/POCO/CommonStructure/TemplateSignature.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
///
diff --git a/uml4net/POCO/CommonStructure/Usage.cs b/uml4net/POCO/CommonStructure/Usage.cs
index 76857c0d..7681f6fe 100644
--- a/uml4net/POCO/CommonStructure/Usage.cs
+++ b/uml4net/POCO/CommonStructure/Usage.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.CommonStructure
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Deployments/Artifact.cs b/uml4net/POCO/Deployments/Artifact.cs
index da9735c8..3c7fc42c 100644
--- a/uml4net/POCO/Deployments/Artifact.cs
+++ b/uml4net/POCO/Deployments/Artifact.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/Deployments/CommunicationPath.cs b/uml4net/POCO/Deployments/CommunicationPath.cs
index 9a461814..2a29daa4 100644
--- a/uml4net/POCO/Deployments/CommunicationPath.cs
+++ b/uml4net/POCO/Deployments/CommunicationPath.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/Deployments/Deployment.cs b/uml4net/POCO/Deployments/Deployment.cs
index f2f3d97b..e8b79953 100644
--- a/uml4net/POCO/Deployments/Deployment.cs
+++ b/uml4net/POCO/Deployments/Deployment.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Deployments/DeploymentSpecification.cs b/uml4net/POCO/Deployments/DeploymentSpecification.cs
index 52a26d0c..dedc3026 100644
--- a/uml4net/POCO/Deployments/DeploymentSpecification.cs
+++ b/uml4net/POCO/Deployments/DeploymentSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/Deployments/DeploymentTarget.cs b/uml4net/POCO/Deployments/DeploymentTarget.cs
index 678e7a08..81eee7a7 100644
--- a/uml4net/POCO/Deployments/DeploymentTarget.cs
+++ b/uml4net/POCO/Deployments/DeploymentTarget.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Deployments/Device.cs b/uml4net/POCO/Deployments/Device.cs
index 55b4ac0b..6704fb7f 100644
--- a/uml4net/POCO/Deployments/Device.cs
+++ b/uml4net/POCO/Deployments/Device.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -425,7 +423,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/Deployments/ExecutionEnvironment.cs b/uml4net/POCO/Deployments/ExecutionEnvironment.cs
index ce4aeea5..57439322 100644
--- a/uml4net/POCO/Deployments/ExecutionEnvironment.cs
+++ b/uml4net/POCO/Deployments/ExecutionEnvironment.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -425,7 +423,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/Deployments/Manifestation.cs b/uml4net/POCO/Deployments/Manifestation.cs
index d5817902..a0641a53 100644
--- a/uml4net/POCO/Deployments/Manifestation.cs
+++ b/uml4net/POCO/Deployments/Manifestation.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Deployments/Node.cs b/uml4net/POCO/Deployments/Node.cs
index a3d5fb2f..833160c1 100644
--- a/uml4net/POCO/Deployments/Node.cs
+++ b/uml4net/POCO/Deployments/Node.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Deployments
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -426,7 +424,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/InformationFlows/InformationFlow.cs b/uml4net/POCO/InformationFlows/InformationFlow.cs
index 701c8d6b..c72f3942 100644
--- a/uml4net/POCO/InformationFlows/InformationFlow.cs
+++ b/uml4net/POCO/InformationFlows/InformationFlow.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.InformationFlows
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/InformationFlows/InformationItem.cs b/uml4net/POCO/InformationFlows/InformationItem.cs
index 07c86d7b..63d9e031 100644
--- a/uml4net/POCO/InformationFlows/InformationItem.cs
+++ b/uml4net/POCO/InformationFlows/InformationItem.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.InformationFlows
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/Interactions/ActionExecutionSpecification.cs b/uml4net/POCO/Interactions/ActionExecutionSpecification.cs
index ae00aec5..75695e03 100644
--- a/uml4net/POCO/Interactions/ActionExecutionSpecification.cs
+++ b/uml4net/POCO/Interactions/ActionExecutionSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/BehaviorExecutionSpecification.cs b/uml4net/POCO/Interactions/BehaviorExecutionSpecification.cs
index 4a684881..ef997e36 100644
--- a/uml4net/POCO/Interactions/BehaviorExecutionSpecification.cs
+++ b/uml4net/POCO/Interactions/BehaviorExecutionSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/CombinedFragment.cs b/uml4net/POCO/Interactions/CombinedFragment.cs
index 4d745082..e68b1bb6 100644
--- a/uml4net/POCO/Interactions/CombinedFragment.cs
+++ b/uml4net/POCO/Interactions/CombinedFragment.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/ConsiderIgnoreFragment.cs b/uml4net/POCO/Interactions/ConsiderIgnoreFragment.cs
index 1089a3fe..ad0ea256 100644
--- a/uml4net/POCO/Interactions/ConsiderIgnoreFragment.cs
+++ b/uml4net/POCO/Interactions/ConsiderIgnoreFragment.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/Continuation.cs b/uml4net/POCO/Interactions/Continuation.cs
index 643d38dd..003a325c 100644
--- a/uml4net/POCO/Interactions/Continuation.cs
+++ b/uml4net/POCO/Interactions/Continuation.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/DestructionOccurrenceSpecification.cs b/uml4net/POCO/Interactions/DestructionOccurrenceSpecification.cs
index 7962c222..835b91a7 100644
--- a/uml4net/POCO/Interactions/DestructionOccurrenceSpecification.cs
+++ b/uml4net/POCO/Interactions/DestructionOccurrenceSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/ExecutionOccurrenceSpecification.cs b/uml4net/POCO/Interactions/ExecutionOccurrenceSpecification.cs
index 642718c4..0f6c3b39 100644
--- a/uml4net/POCO/Interactions/ExecutionOccurrenceSpecification.cs
+++ b/uml4net/POCO/Interactions/ExecutionOccurrenceSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/Gate.cs b/uml4net/POCO/Interactions/Gate.cs
index 99f8bf78..30f3a0e3 100644
--- a/uml4net/POCO/Interactions/Gate.cs
+++ b/uml4net/POCO/Interactions/Gate.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/GeneralOrdering.cs b/uml4net/POCO/Interactions/GeneralOrdering.cs
index 13ab3f4d..480338d9 100644
--- a/uml4net/POCO/Interactions/GeneralOrdering.cs
+++ b/uml4net/POCO/Interactions/GeneralOrdering.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/Interaction.cs b/uml4net/POCO/Interactions/Interaction.cs
index 535c0f8f..717a7bea 100644
--- a/uml4net/POCO/Interactions/Interaction.cs
+++ b/uml4net/POCO/Interactions/Interaction.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -424,7 +422,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/Interactions/InteractionConstraint.cs b/uml4net/POCO/Interactions/InteractionConstraint.cs
index 7842697c..25c2e600 100644
--- a/uml4net/POCO/Interactions/InteractionConstraint.cs
+++ b/uml4net/POCO/Interactions/InteractionConstraint.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/InteractionOperand.cs b/uml4net/POCO/Interactions/InteractionOperand.cs
index 8f5e769d..d9dff765 100644
--- a/uml4net/POCO/Interactions/InteractionOperand.cs
+++ b/uml4net/POCO/Interactions/InteractionOperand.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/InteractionUse.cs b/uml4net/POCO/Interactions/InteractionUse.cs
index 66d14297..4e9aa2c3 100644
--- a/uml4net/POCO/Interactions/InteractionUse.cs
+++ b/uml4net/POCO/Interactions/InteractionUse.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/Lifeline.cs b/uml4net/POCO/Interactions/Lifeline.cs
index e25829ac..de0c5815 100644
--- a/uml4net/POCO/Interactions/Lifeline.cs
+++ b/uml4net/POCO/Interactions/Lifeline.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/Message.cs b/uml4net/POCO/Interactions/Message.cs
index 5880ff5a..7311061f 100644
--- a/uml4net/POCO/Interactions/Message.cs
+++ b/uml4net/POCO/Interactions/Message.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/MessageOccurrenceSpecification.cs b/uml4net/POCO/Interactions/MessageOccurrenceSpecification.cs
index d48ce0a7..4b58c9f9 100644
--- a/uml4net/POCO/Interactions/MessageOccurrenceSpecification.cs
+++ b/uml4net/POCO/Interactions/MessageOccurrenceSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/OccurrenceSpecification.cs b/uml4net/POCO/Interactions/OccurrenceSpecification.cs
index e12a6380..54c45c9f 100644
--- a/uml4net/POCO/Interactions/OccurrenceSpecification.cs
+++ b/uml4net/POCO/Interactions/OccurrenceSpecification.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/PartDecomposition.cs b/uml4net/POCO/Interactions/PartDecomposition.cs
index 45de647e..891425c3 100644
--- a/uml4net/POCO/Interactions/PartDecomposition.cs
+++ b/uml4net/POCO/Interactions/PartDecomposition.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Interactions/StateInvariant.cs b/uml4net/POCO/Interactions/StateInvariant.cs
index 32295de8..adb099ed 100644
--- a/uml4net/POCO/Interactions/StateInvariant.cs
+++ b/uml4net/POCO/Interactions/StateInvariant.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Interactions
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Packages/Extension.cs b/uml4net/POCO/Packages/Extension.cs
index 6899c442..6d881564 100644
--- a/uml4net/POCO/Packages/Extension.cs
+++ b/uml4net/POCO/Packages/Extension.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.StructuredClassifiers;
diff --git a/uml4net/POCO/Packages/ExtensionEnd.cs b/uml4net/POCO/Packages/ExtensionEnd.cs
index d2f1bc7c..af97a3dd 100644
--- a/uml4net/POCO/Packages/ExtensionEnd.cs
+++ b/uml4net/POCO/Packages/ExtensionEnd.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.SimpleClassifiers;
diff --git a/uml4net/POCO/Packages/Image.cs b/uml4net/POCO/Packages/Image.cs
index db77c97c..e60b8d25 100644
--- a/uml4net/POCO/Packages/Image.cs
+++ b/uml4net/POCO/Packages/Image.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Packages/Model.cs b/uml4net/POCO/Packages/Model.cs
index b7845c09..dd41ebc2 100644
--- a/uml4net/POCO/Packages/Model.cs
+++ b/uml4net/POCO/Packages/Model.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Packages/Package.cs b/uml4net/POCO/Packages/Package.cs
index 4d47d7c0..d45fd877 100644
--- a/uml4net/POCO/Packages/Package.cs
+++ b/uml4net/POCO/Packages/Package.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
-
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Packages/PackageMerge.cs b/uml4net/POCO/Packages/PackageMerge.cs
index 1c788d4f..3d978c42 100644
--- a/uml4net/POCO/Packages/PackageMerge.cs
+++ b/uml4net/POCO/Packages/PackageMerge.cs
@@ -20,13 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Packages/Profile.cs b/uml4net/POCO/Packages/Profile.cs
index 4c29ad2a..2fba7947 100644
--- a/uml4net/POCO/Packages/Profile.cs
+++ b/uml4net/POCO/Packages/Profile.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
-
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/Packages/ProfileApplication.cs b/uml4net/POCO/Packages/ProfileApplication.cs
index 1b67a425..a8de8be6 100644
--- a/uml4net/POCO/Packages/ProfileApplication.cs
+++ b/uml4net/POCO/Packages/ProfileApplication.cs
@@ -20,13 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Packages/Stereotype.cs b/uml4net/POCO/Packages/Stereotype.cs
index 8937cd5e..32c2f009 100644
--- a/uml4net/POCO/Packages/Stereotype.cs
+++ b/uml4net/POCO/Packages/Stereotype.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Packages
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
-
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.SimpleClassifiers;
@@ -413,7 +411,16 @@ IContainerList IClassifier.Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/SimpleClassifiers/DataType.cs b/uml4net/POCO/SimpleClassifiers/DataType.cs
index 6ca5cae9..275a45c8 100644
--- a/uml4net/POCO/SimpleClassifiers/DataType.cs
+++ b/uml4net/POCO/SimpleClassifiers/DataType.cs
@@ -20,14 +20,13 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
+
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/SimpleClassifiers/Enumeration.cs b/uml4net/POCO/SimpleClassifiers/Enumeration.cs
index 25539d7d..c810e61a 100644
--- a/uml4net/POCO/SimpleClassifiers/Enumeration.cs
+++ b/uml4net/POCO/SimpleClassifiers/Enumeration.cs
@@ -20,14 +20,13 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
+
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/SimpleClassifiers/EnumerationLiteral.cs b/uml4net/POCO/SimpleClassifiers/EnumerationLiteral.cs
index 576d69cf..aad164af 100644
--- a/uml4net/POCO/SimpleClassifiers/EnumerationLiteral.cs
+++ b/uml4net/POCO/SimpleClassifiers/EnumerationLiteral.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/SimpleClassifiers/Interface.cs b/uml4net/POCO/SimpleClassifiers/Interface.cs
index 4b8b31cb..efc47701 100644
--- a/uml4net/POCO/SimpleClassifiers/Interface.cs
+++ b/uml4net/POCO/SimpleClassifiers/Interface.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
- using System.Linq;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/SimpleClassifiers/InterfaceRealization.cs b/uml4net/POCO/SimpleClassifiers/InterfaceRealization.cs
index 5aac39f9..eed46b18 100644
--- a/uml4net/POCO/SimpleClassifiers/InterfaceRealization.cs
+++ b/uml4net/POCO/SimpleClassifiers/InterfaceRealization.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/SimpleClassifiers/PrimitiveType.cs b/uml4net/POCO/SimpleClassifiers/PrimitiveType.cs
index 427b793f..35048f5a 100644
--- a/uml4net/POCO/SimpleClassifiers/PrimitiveType.cs
+++ b/uml4net/POCO/SimpleClassifiers/PrimitiveType.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/SimpleClassifiers/Reception.cs b/uml4net/POCO/SimpleClassifiers/Reception.cs
index 2d98dfc4..d7249799 100644
--- a/uml4net/POCO/SimpleClassifiers/Reception.cs
+++ b/uml4net/POCO/SimpleClassifiers/Reception.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonBehavior;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/SimpleClassifiers/Signal.cs b/uml4net/POCO/SimpleClassifiers/Signal.cs
index c27b4846..e3b360ba 100644
--- a/uml4net/POCO/SimpleClassifiers/Signal.cs
+++ b/uml4net/POCO/SimpleClassifiers/Signal.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.SimpleClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/StateMachines/ConnectionPointReference.cs b/uml4net/POCO/StateMachines/ConnectionPointReference.cs
index cfeccf73..61fba5f3 100644
--- a/uml4net/POCO/StateMachines/ConnectionPointReference.cs
+++ b/uml4net/POCO/StateMachines/ConnectionPointReference.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StateMachines/FinalState.cs b/uml4net/POCO/StateMachines/FinalState.cs
index fb3fabb2..2c0a8ae3 100644
--- a/uml4net/POCO/StateMachines/FinalState.cs
+++ b/uml4net/POCO/StateMachines/FinalState.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StateMachines/ProtocolConformance.cs b/uml4net/POCO/StateMachines/ProtocolConformance.cs
index 4fe8ea83..a46f25ef 100644
--- a/uml4net/POCO/StateMachines/ProtocolConformance.cs
+++ b/uml4net/POCO/StateMachines/ProtocolConformance.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/StateMachines/ProtocolStateMachine.cs b/uml4net/POCO/StateMachines/ProtocolStateMachine.cs
index 2ca9a110..4100f672 100644
--- a/uml4net/POCO/StateMachines/ProtocolStateMachine.cs
+++ b/uml4net/POCO/StateMachines/ProtocolStateMachine.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -431,7 +429,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/StateMachines/ProtocolTransition.cs b/uml4net/POCO/StateMachines/ProtocolTransition.cs
index d75a9289..24d6710d 100644
--- a/uml4net/POCO/StateMachines/ProtocolTransition.cs
+++ b/uml4net/POCO/StateMachines/ProtocolTransition.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StateMachines/Pseudostate.cs b/uml4net/POCO/StateMachines/Pseudostate.cs
index a4369d98..1a9ccec1 100644
--- a/uml4net/POCO/StateMachines/Pseudostate.cs
+++ b/uml4net/POCO/StateMachines/Pseudostate.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StateMachines/Region.cs b/uml4net/POCO/StateMachines/Region.cs
index 59db5ea0..75aceeb0 100644
--- a/uml4net/POCO/StateMachines/Region.cs
+++ b/uml4net/POCO/StateMachines/Region.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StateMachines/State.cs b/uml4net/POCO/StateMachines/State.cs
index 1a1b13c3..7d0e37ed 100644
--- a/uml4net/POCO/StateMachines/State.cs
+++ b/uml4net/POCO/StateMachines/State.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StateMachines/StateMachine.cs b/uml4net/POCO/StateMachines/StateMachine.cs
index 05e1636e..1bf5febf 100644
--- a/uml4net/POCO/StateMachines/StateMachine.cs
+++ b/uml4net/POCO/StateMachines/StateMachine.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -428,7 +426,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/StateMachines/Transition.cs b/uml4net/POCO/StateMachines/Transition.cs
index 34d8057d..1188fb2d 100644
--- a/uml4net/POCO/StateMachines/Transition.cs
+++ b/uml4net/POCO/StateMachines/Transition.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StateMachines
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StructuredClassifiers/Association.cs b/uml4net/POCO/StructuredClassifiers/Association.cs
index bc9843d9..30156245 100644
--- a/uml4net/POCO/StructuredClassifiers/Association.cs
+++ b/uml4net/POCO/StructuredClassifiers/Association.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/StructuredClassifiers/AssociationClass.cs b/uml4net/POCO/StructuredClassifiers/AssociationClass.cs
index 426155f1..2168cdc9 100644
--- a/uml4net/POCO/StructuredClassifiers/AssociationClass.cs
+++ b/uml4net/POCO/StructuredClassifiers/AssociationClass.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -474,7 +472,17 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/StructuredClassifiers/Class.cs b/uml4net/POCO/StructuredClassifiers/Class.cs
index e07c5723..35356b10 100644
--- a/uml4net/POCO/StructuredClassifiers/Class.cs
+++ b/uml4net/POCO/StructuredClassifiers/Class.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
- using System.Linq;
+
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -62,7 +60,7 @@ public IContainerList OwnedComment
///
[Property(aggregation: AggregationKind.Composite, lowerValue: 0, upperValue: int.MaxValue, isReadOnly: true, isDerived: true, isDerivedUnion: true)]
[Implements(implementation: "IElement.OwnedElement")]
- public List OwnedElement { get; set; } = new List();
+ public List OwnedElement => throw new NotImplementedException();
///
/// The Element that owns this Element.
@@ -140,6 +138,7 @@ public IContainerList ElementImport
/// Backing field for
///
private IContainerList elementImport;
+
///
/// References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
///
@@ -425,7 +424,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/StructuredClassifiers/Collaboration.cs b/uml4net/POCO/StructuredClassifiers/Collaboration.cs
index 0eadcbea..9c718766 100644
--- a/uml4net/POCO/StructuredClassifiers/Collaboration.cs
+++ b/uml4net/POCO/StructuredClassifiers/Collaboration.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/StructuredClassifiers/CollaborationUse.cs b/uml4net/POCO/StructuredClassifiers/CollaborationUse.cs
index 77acdd21..ae1fa43b 100644
--- a/uml4net/POCO/StructuredClassifiers/CollaborationUse.cs
+++ b/uml4net/POCO/StructuredClassifiers/CollaborationUse.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StructuredClassifiers/Component.cs b/uml4net/POCO/StructuredClassifiers/Component.cs
index b629eb49..d4736c1a 100644
--- a/uml4net/POCO/StructuredClassifiers/Component.cs
+++ b/uml4net/POCO/StructuredClassifiers/Component.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
@@ -424,7 +422,16 @@ public IContainerList Generalization
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
[Implements(implementation: "IClass.OwnedAttribute")]
- public List OwnedAttribute { get; set; } = new();
+ public IContainerList OwnedAttribute
+ {
+ get => this.ownedAttribute ??= new ContainerList(this);
+ set => this.ownedAttribute = value;
+ }
+
+ ///
+ /// Backing field for
+ ///
+ private IContainerList ownedAttribute;
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/StructuredClassifiers/ComponentRealization.cs b/uml4net/POCO/StructuredClassifiers/ComponentRealization.cs
index d119778f..6e949e97 100644
--- a/uml4net/POCO/StructuredClassifiers/ComponentRealization.cs
+++ b/uml4net/POCO/StructuredClassifiers/ComponentRealization.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StructuredClassifiers/ConnectableElementTemplateParameter.cs b/uml4net/POCO/StructuredClassifiers/ConnectableElementTemplateParameter.cs
index 23056513..5cf2aafa 100644
--- a/uml4net/POCO/StructuredClassifiers/ConnectableElementTemplateParameter.cs
+++ b/uml4net/POCO/StructuredClassifiers/ConnectableElementTemplateParameter.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/StructuredClassifiers/Connector.cs b/uml4net/POCO/StructuredClassifiers/Connector.cs
index 610507a2..292616cc 100644
--- a/uml4net/POCO/StructuredClassifiers/Connector.cs
+++ b/uml4net/POCO/StructuredClassifiers/Connector.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StructuredClassifiers/ConnectorEnd.cs b/uml4net/POCO/StructuredClassifiers/ConnectorEnd.cs
index 14c02f71..7f59c70b 100644
--- a/uml4net/POCO/StructuredClassifiers/ConnectorEnd.cs
+++ b/uml4net/POCO/StructuredClassifiers/ConnectorEnd.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/StructuredClassifiers/EncapsulatedClassifier.cs b/uml4net/POCO/StructuredClassifiers/EncapsulatedClassifier.cs
index 7b528511..e977bd36 100644
--- a/uml4net/POCO/StructuredClassifiers/EncapsulatedClassifier.cs
+++ b/uml4net/POCO/StructuredClassifiers/EncapsulatedClassifier.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/StructuredClassifiers/IClass.cs b/uml4net/POCO/StructuredClassifiers/IClass.cs
index 751be433..47f29cc5 100644
--- a/uml4net/POCO/StructuredClassifiers/IClass.cs
+++ b/uml4net/POCO/StructuredClassifiers/IClass.cs
@@ -26,6 +26,7 @@ namespace uml4net.POCO.StructuredClassifiers
using uml4net.POCO.Classification;
using uml4net.POCO.Packages;
using uml4net.POCO.SimpleClassifiers;
+ using uml4net.Utils;
///
/// A Class classifies a set of objects and specifies the features that characterize the structure and behavior
@@ -71,7 +72,7 @@ public interface IClass : IBehavioredClassifier, IEncapsulatedClassifier
[RedefinedProperty("StructuredClassifier-ownedAttribute")]
[SubsettedProperty("Classifier-attribute")]
[SubsettedProperty("Namespace-ownedMember")]
- public List OwnedAttribute { get; set; }
+ public IContainerList OwnedAttribute { get; set; }
///
/// The Operations owned by the Class.
diff --git a/uml4net/POCO/StructuredClassifiers/Port.cs b/uml4net/POCO/StructuredClassifiers/Port.cs
index 2e36aeab..d6d7e632 100644
--- a/uml4net/POCO/StructuredClassifiers/Port.cs
+++ b/uml4net/POCO/StructuredClassifiers/Port.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.StructuredClassifiers
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.SimpleClassifiers;
diff --git a/uml4net/POCO/UseCases/Actor.cs b/uml4net/POCO/UseCases/Actor.cs
index 3888c9e3..55db0699 100644
--- a/uml4net/POCO/UseCases/Actor.cs
+++ b/uml4net/POCO/UseCases/Actor.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.UseCases
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/UseCases/Extend.cs b/uml4net/POCO/UseCases/Extend.cs
index 70b4978b..25659183 100644
--- a/uml4net/POCO/UseCases/Extend.cs
+++ b/uml4net/POCO/UseCases/Extend.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.UseCases
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/UseCases/ExtensionPoint.cs b/uml4net/POCO/UseCases/ExtensionPoint.cs
index 604a2d53..1dd1e1c6 100644
--- a/uml4net/POCO/UseCases/ExtensionPoint.cs
+++ b/uml4net/POCO/UseCases/ExtensionPoint.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.UseCases
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/UseCases/Include.cs b/uml4net/POCO/UseCases/Include.cs
index b12150f8..4f3207b5 100644
--- a/uml4net/POCO/UseCases/Include.cs
+++ b/uml4net/POCO/UseCases/Include.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.UseCases
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Values;
diff --git a/uml4net/POCO/UseCases/UseCase.cs b/uml4net/POCO/UseCases/UseCase.cs
index 11503ce6..2ed52100 100644
--- a/uml4net/POCO/UseCases/UseCase.cs
+++ b/uml4net/POCO/UseCases/UseCase.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.UseCases
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
using uml4net.POCO.Packages;
diff --git a/uml4net/POCO/Values/Duration.cs b/uml4net/POCO/Values/Duration.cs
index a083d8ef..26259f4d 100644
--- a/uml4net/POCO/Values/Duration.cs
+++ b/uml4net/POCO/Values/Duration.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/DurationConstraint.cs b/uml4net/POCO/Values/DurationConstraint.cs
index 5576515b..1c69f18b 100644
--- a/uml4net/POCO/Values/DurationConstraint.cs
+++ b/uml4net/POCO/Values/DurationConstraint.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/DurationInterval.cs b/uml4net/POCO/Values/DurationInterval.cs
index 991ea7cd..d8a4d05b 100644
--- a/uml4net/POCO/Values/DurationInterval.cs
+++ b/uml4net/POCO/Values/DurationInterval.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/DurationObservation.cs b/uml4net/POCO/Values/DurationObservation.cs
index 8e544125..f4416e44 100644
--- a/uml4net/POCO/Values/DurationObservation.cs
+++ b/uml4net/POCO/Values/DurationObservation.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/Expression.cs b/uml4net/POCO/Values/Expression.cs
index 641667c2..f8bbd880 100644
--- a/uml4net/POCO/Values/Expression.cs
+++ b/uml4net/POCO/Values/Expression.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/Interval.cs b/uml4net/POCO/Values/Interval.cs
index 49e1b160..fec61f9d 100644
--- a/uml4net/POCO/Values/Interval.cs
+++ b/uml4net/POCO/Values/Interval.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/IntervalConstraint.cs b/uml4net/POCO/Values/IntervalConstraint.cs
index da01f1a4..bd3141f4 100644
--- a/uml4net/POCO/Values/IntervalConstraint.cs
+++ b/uml4net/POCO/Values/IntervalConstraint.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/LiteralBoolean.cs b/uml4net/POCO/Values/LiteralBoolean.cs
index b426cd8e..66359e2b 100644
--- a/uml4net/POCO/Values/LiteralBoolean.cs
+++ b/uml4net/POCO/Values/LiteralBoolean.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/LiteralInteger.cs b/uml4net/POCO/Values/LiteralInteger.cs
index 7410ad9b..2a4a3f26 100644
--- a/uml4net/POCO/Values/LiteralInteger.cs
+++ b/uml4net/POCO/Values/LiteralInteger.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/LiteralNull.cs b/uml4net/POCO/Values/LiteralNull.cs
index bae1bed3..a89e2f59 100644
--- a/uml4net/POCO/Values/LiteralNull.cs
+++ b/uml4net/POCO/Values/LiteralNull.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/LiteralReal.cs b/uml4net/POCO/Values/LiteralReal.cs
index efe1801f..a47c3ae2 100644
--- a/uml4net/POCO/Values/LiteralReal.cs
+++ b/uml4net/POCO/Values/LiteralReal.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/LiteralString.cs b/uml4net/POCO/Values/LiteralString.cs
index d4bdaf23..f7d63393 100644
--- a/uml4net/POCO/Values/LiteralString.cs
+++ b/uml4net/POCO/Values/LiteralString.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/LiteralUnlimitedNatural.cs b/uml4net/POCO/Values/LiteralUnlimitedNatural.cs
index 22771a43..3916098b 100644
--- a/uml4net/POCO/Values/LiteralUnlimitedNatural.cs
+++ b/uml4net/POCO/Values/LiteralUnlimitedNatural.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/OpaqueExpression.cs b/uml4net/POCO/Values/OpaqueExpression.cs
index 3db41129..f85927ec 100644
--- a/uml4net/POCO/Values/OpaqueExpression.cs
+++ b/uml4net/POCO/Values/OpaqueExpression.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonBehavior;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/StringExpression.cs b/uml4net/POCO/Values/StringExpression.cs
index 294be1b3..ea85d399 100644
--- a/uml4net/POCO/Values/StringExpression.cs
+++ b/uml4net/POCO/Values/StringExpression.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/TimeConstraint.cs b/uml4net/POCO/Values/TimeConstraint.cs
index 012d3d79..6566e4e0 100644
--- a/uml4net/POCO/Values/TimeConstraint.cs
+++ b/uml4net/POCO/Values/TimeConstraint.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/TimeExpression.cs b/uml4net/POCO/Values/TimeExpression.cs
index 3f43cad1..09409840 100644
--- a/uml4net/POCO/Values/TimeExpression.cs
+++ b/uml4net/POCO/Values/TimeExpression.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/TimeInterval.cs b/uml4net/POCO/Values/TimeInterval.cs
index 9b64ce6f..9261fbb5 100644
--- a/uml4net/POCO/Values/TimeInterval.cs
+++ b/uml4net/POCO/Values/TimeInterval.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;
diff --git a/uml4net/POCO/Values/TimeObservation.cs b/uml4net/POCO/Values/TimeObservation.cs
index dad997d9..529cb04c 100644
--- a/uml4net/POCO/Values/TimeObservation.cs
+++ b/uml4net/POCO/Values/TimeObservation.cs
@@ -20,14 +20,12 @@
namespace uml4net.POCO.Values
{
- using Extensions;
-
- using Utils;
-
using System;
using System.Collections.Generic;
using uml4net.Decorators;
+ using uml4net.Extend;
+ using uml4net.Utils;
using uml4net.POCO.Classification;
using uml4net.POCO.CommonStructure;