Skip to content

Commit d247538

Browse files
[WIP] Enhance generaion but missing logic (FeatureMembership issue)
1 parent 0cd6371 commit d247538

File tree

82 files changed

+1698
-390
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1698
-390
lines changed

SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs

Lines changed: 109 additions & 59 deletions
Large diffs are not rendered by default.

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ namespace SysML2.NET.TextualNotation
2828
using System.Text;
2929

3030
using SysML2.NET.Core.POCO.Root.Elements;
31-
using SysML2.NET.Core.POCO.Systems.Actions;
3231

3332
/// <summary>
3433
/// The <see cref="AcceptActionUsageTextualNotationBuilder" /> provides Textual Notation Builder for the <see cref="SysML2.NET.Core.POCO.Systems.Actions.IAcceptActionUsage" /> element
@@ -73,12 +72,20 @@ public static void BuildAcceptParameterPart(SysML2.NET.Core.POCO.Systems.Actions
7372
{
7473
using var ownedRelationshipOfParameterMembershipIterator = poco.OwnedRelationship.OfType<SysML2.NET.Core.POCO.Kernel.Behaviors.ParameterMembership>().GetEnumerator();
7574
ownedRelationshipOfParameterMembershipIterator.MoveNext();
76-
ParameterMembershipTextualNotationBuilder.BuildPayloadParameterMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
75+
76+
if (ownedRelationshipOfParameterMembershipIterator.Current != null)
77+
{
78+
ParameterMembershipTextualNotationBuilder.BuildPayloadParameterMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
79+
}
7780

7881
if (ownedRelationshipOfParameterMembershipIterator.MoveNext())
7982
{
8083
stringBuilder.Append("via ");
81-
ParameterMembershipTextualNotationBuilder.BuildNodeParameterMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
84+
85+
if (ownedRelationshipOfParameterMembershipIterator.Current != null)
86+
{
87+
ParameterMembershipTextualNotationBuilder.BuildNodeParameterMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
88+
}
8289
stringBuilder.Append(' ');
8390
}
8491

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,24 @@ public static void BuildAssignmentNodeDeclaration(SysML2.NET.Core.POCO.Systems.A
103103

104104
stringBuilder.Append("assign ");
105105
ownedRelationshipOfParameterMembershipIterator.MoveNext();
106-
ParameterMembershipTextualNotationBuilder.BuildAssignmentTargetMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
106+
107+
if (ownedRelationshipOfParameterMembershipIterator.Current != null)
108+
{
109+
ParameterMembershipTextualNotationBuilder.BuildAssignmentTargetMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
110+
}
107111
ownedRelationshipOfMembershipIterator.MoveNext();
108-
MembershipTextualNotationBuilder.BuildFeatureChainMember(ownedRelationshipOfMembershipIterator.Current, stringBuilder);
112+
113+
if (ownedRelationshipOfMembershipIterator.Current != null)
114+
{
115+
MembershipTextualNotationBuilder.BuildFeatureChainMember(ownedRelationshipOfMembershipIterator.Current, stringBuilder);
116+
}
109117
stringBuilder.Append(":= ");
110118
ownedRelationshipOfParameterMembershipIterator.MoveNext();
111-
ParameterMembershipTextualNotationBuilder.BuildNodeParameterMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
119+
120+
if (ownedRelationshipOfParameterMembershipIterator.Current != null)
121+
{
122+
ParameterMembershipTextualNotationBuilder.BuildNodeParameterMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
123+
}
112124

113125
}
114126

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ public static void BuildActorMember(SysML2.NET.Core.POCO.Systems.Requirements.IA
4545
using var ownedRelatedElementOfPartUsageIterator = poco.OwnedRelatedElement.OfType<SysML2.NET.Core.POCO.Systems.Parts.PartUsage>().GetEnumerator();
4646
MembershipTextualNotationBuilder.BuildMemberPrefix(poco, stringBuilder);
4747
ownedRelatedElementOfPartUsageIterator.MoveNext();
48-
PartUsageTextualNotationBuilder.BuildActorUsage(ownedRelatedElementOfPartUsageIterator.Current, stringBuilder);
48+
49+
if (ownedRelatedElementOfPartUsageIterator.Current != null)
50+
{
51+
PartUsageTextualNotationBuilder.BuildActorUsage(ownedRelatedElementOfPartUsageIterator.Current, stringBuilder);
52+
}
4953

5054
}
5155
}

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ public static void BuildOwnedAnnotation(SysML2.NET.Core.POCO.Root.Annotations.IA
4444
{
4545
using var ownedRelatedElementOfAnnotatingElementIterator = poco.OwnedRelatedElement.OfType<SysML2.NET.Core.POCO.Root.Annotations.AnnotatingElement>().GetEnumerator();
4646
ownedRelatedElementOfAnnotatingElementIterator.MoveNext();
47-
AnnotatingElementTextualNotationBuilder.BuildAnnotatingElement(ownedRelatedElementOfAnnotatingElementIterator.Current, stringBuilder);
47+
48+
if (ownedRelatedElementOfAnnotatingElementIterator.Current != null)
49+
{
50+
AnnotatingElementTextualNotationBuilder.BuildAnnotatingElement(ownedRelatedElementOfAnnotatingElementIterator.Current, stringBuilder);
51+
}
4852

4953
}
5054

@@ -57,8 +61,19 @@ public static void BuildOwnedAnnotation(SysML2.NET.Core.POCO.Root.Annotations.IA
5761
public static void BuildPrefixMetadataAnnotation(SysML2.NET.Core.POCO.Root.Annotations.IAnnotation poco, StringBuilder stringBuilder)
5862
{
5963
stringBuilder.Append("#");
60-
throw new System.NotSupportedException("Assigment of non-string value not yet supported");
61-
// Assignment Element : ownedRelatedElement += annotatingElement
64+
65+
if (poco.annotatingElement != null)
66+
{
67+
using var ownedRelationshipOfFeatureTypingIterator = poco.OwnedRelationship.OfType<SysML2.NET.Core.POCO.Core.Features.FeatureTyping>().GetEnumerator();
68+
ownedRelationshipOfFeatureTypingIterator.MoveNext();
69+
70+
if (ownedRelationshipOfFeatureTypingIterator.Current != null)
71+
{
72+
FeatureTypingTextualNotationBuilder.BuildOwnedFeatureTyping(ownedRelationshipOfFeatureTypingIterator.Current, stringBuilder);
73+
}
74+
75+
}
76+
// NonParsing Assignment Element : ownedRelatedElement += annotatingElement => Does not have to be process
6277

6378
}
6479

@@ -70,7 +85,7 @@ public static void BuildPrefixMetadataAnnotation(SysML2.NET.Core.POCO.Root.Annot
7085
/// <param name="stringBuilder">The <see cref="StringBuilder" /> that contains the entire textual notation</param>
7186
public static void BuildAnnotation(SysML2.NET.Core.POCO.Root.Annotations.IAnnotation poco, StringBuilder stringBuilder)
7287
{
73-
throw new System.NotSupportedException("Assigment of non-string value not yet supported");
88+
throw new System.NotSupportedException("Assigment of reference element not supported yet for this case");
7489

7590
}
7691
}

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,18 @@ public static void BuildBindingConnectorAsUsage(SysML2.NET.Core.POCO.Systems.Con
5454

5555
stringBuilder.Append("bind ");
5656
ownedRelationshipOfEndFeatureMembershipIterator.MoveNext();
57-
EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(ownedRelationshipOfEndFeatureMembershipIterator.Current, stringBuilder);
57+
58+
if (ownedRelationshipOfEndFeatureMembershipIterator.Current != null)
59+
{
60+
EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(ownedRelationshipOfEndFeatureMembershipIterator.Current, stringBuilder);
61+
}
5862
stringBuilder.Append("=");
5963
ownedRelationshipOfEndFeatureMembershipIterator.MoveNext();
60-
EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(ownedRelationshipOfEndFeatureMembershipIterator.Current, stringBuilder);
64+
65+
if (ownedRelationshipOfEndFeatureMembershipIterator.Current != null)
66+
{
67+
EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(ownedRelationshipOfEndFeatureMembershipIterator.Current, stringBuilder);
68+
}
6169
UsageTextualNotationBuilder.BuildUsageBody(poco, stringBuilder);
6270

6371
}

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ public static void BuildBindingConnector(SysML2.NET.Core.POCO.Kernel.Connectors.
5959

6060
while (ownedRelationshipOfOwningMembershipIterator.MoveNext())
6161
{
62-
OwningMembershipTextualNotationBuilder.BuildPrefixMetadataMember(ownedRelationshipOfOwningMembershipIterator.Current, stringBuilder);
62+
63+
if (ownedRelationshipOfOwningMembershipIterator.Current != null)
64+
{
65+
OwningMembershipTextualNotationBuilder.BuildPrefixMetadataMember(ownedRelationshipOfOwningMembershipIterator.Current, stringBuilder);
66+
}
6367

6468
}
6569

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ public static void BuildBooleanExpression(SysML2.NET.Core.POCO.Kernel.Functions.
4848

4949
while (ownedRelationshipOfOwningMembershipIterator.MoveNext())
5050
{
51-
OwningMembershipTextualNotationBuilder.BuildPrefixMetadataMember(ownedRelationshipOfOwningMembershipIterator.Current, stringBuilder);
51+
52+
if (ownedRelationshipOfOwningMembershipIterator.Current != null)
53+
{
54+
OwningMembershipTextualNotationBuilder.BuildPrefixMetadataMember(ownedRelationshipOfOwningMembershipIterator.Current, stringBuilder);
55+
}
5256

5357
}
5458

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,20 @@ public static void BuildSubclassificationPart(SysML2.NET.Core.POCO.Core.Classifi
4545
using var ownedRelationshipOfSubclassificationIterator = poco.OwnedRelationship.OfType<SysML2.NET.Core.POCO.Core.Classifiers.Subclassification>().GetEnumerator();
4646
throw new System.NotSupportedException("Multiple alternatives not implemented yet");
4747
ownedRelationshipOfSubclassificationIterator.MoveNext();
48-
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
48+
49+
if (ownedRelationshipOfSubclassificationIterator.Current != null)
50+
{
51+
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
52+
}
4953

5054
while (ownedRelationshipOfSubclassificationIterator.MoveNext())
5155
{
5256
stringBuilder.Append(",");
53-
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
57+
58+
if (ownedRelationshipOfSubclassificationIterator.Current != null)
59+
{
60+
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
61+
}
5462

5563
}
5664

@@ -76,7 +84,11 @@ public static void BuildClassifierDeclaration(SysML2.NET.Core.POCO.Core.Classifi
7684

7785
if (ownedRelationshipOfOwningMembershipIterator.MoveNext())
7886
{
79-
OwningMembershipTextualNotationBuilder.BuildOwnedMultiplicity(ownedRelationshipOfOwningMembershipIterator.Current, stringBuilder);
87+
88+
if (ownedRelationshipOfOwningMembershipIterator.Current != null)
89+
{
90+
OwningMembershipTextualNotationBuilder.BuildOwnedMultiplicity(ownedRelationshipOfOwningMembershipIterator.Current, stringBuilder);
91+
}
8092
stringBuilder.Append(' ');
8193
}
8294

@@ -96,12 +108,20 @@ public static void BuildSuperclassingPart(SysML2.NET.Core.POCO.Core.Classifiers.
96108
using var ownedRelationshipOfSubclassificationIterator = poco.OwnedRelationship.OfType<SysML2.NET.Core.POCO.Core.Classifiers.Subclassification>().GetEnumerator();
97109
throw new System.NotSupportedException("Multiple alternatives not implemented yet");
98110
ownedRelationshipOfSubclassificationIterator.MoveNext();
99-
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
111+
112+
if (ownedRelationshipOfSubclassificationIterator.Current != null)
113+
{
114+
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
115+
}
100116

101117
while (ownedRelationshipOfSubclassificationIterator.MoveNext())
102118
{
103119
stringBuilder.Append(",");
104-
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
120+
121+
if (ownedRelationshipOfSubclassificationIterator.Current != null)
122+
{
123+
SubclassificationTextualNotationBuilder.BuildOwnedSubclassification(ownedRelationshipOfSubclassificationIterator.Current, stringBuilder);
124+
}
105125

106126
}
107127

SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,18 @@ public static void BuildCollectExpression(SysML2.NET.Core.POCO.Kernel.Expression
4444
{
4545
using var ownedRelationshipOfParameterMembershipIterator = poco.OwnedRelationship.OfType<SysML2.NET.Core.POCO.Kernel.Behaviors.ParameterMembership>().GetEnumerator();
4646
ownedRelationshipOfParameterMembershipIterator.MoveNext();
47-
ParameterMembershipTextualNotationBuilder.BuildPrimaryArgumentMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
47+
48+
if (ownedRelationshipOfParameterMembershipIterator.Current != null)
49+
{
50+
ParameterMembershipTextualNotationBuilder.BuildPrimaryArgumentMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
51+
}
4852
stringBuilder.Append(".");
4953
ownedRelationshipOfParameterMembershipIterator.MoveNext();
50-
ParameterMembershipTextualNotationBuilder.BuildBodyArgumentMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
54+
55+
if (ownedRelationshipOfParameterMembershipIterator.Current != null)
56+
{
57+
ParameterMembershipTextualNotationBuilder.BuildBodyArgumentMember(ownedRelationshipOfParameterMembershipIterator.Current, stringBuilder);
58+
}
5159

5260
}
5361
}

0 commit comments

Comments
 (0)