Skip to content

Commit d4c5ee1

Browse files
author
samatrhea
committed
[Refactor] reference serializer to be inline with KERML spec; fixes #29
1 parent 402c5ec commit d4c5ee1

File tree

170 files changed

+2105
-27
lines changed

Some content is hidden

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

170 files changed

+2105
-27
lines changed

SysML2.NET.CodeGenerator.Tests/Expected/AutoGenSerializer/ElementSerializer.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ public static void Serialize(IElement iElement, Utf8JsonWriter writer, Serializa
7272
writer.WriteStartArray("ownedRelationship");
7373
foreach (var item in iElement.OwnedRelationship)
7474
{
75+
writer.WriteStartObject();
76+
writer.WritePropertyName("@id"u8);
7577
writer.WriteStringValue(item);
78+
writer.WriteEndObject();
7679
}
7780
writer.WriteEndArray();
7881

SysML2.NET.CodeGenerator.Tests/Expected/AutoGenSerializer/TriggerInvocationExpressionSerializer.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,16 @@ public static void Serialize(ITriggerInvocationExpression iTriggerInvocationExpr
5050
{
5151
writer.WriteStartObject();
5252

53-
writer.WritePropertyName("@id");
53+
writer.WritePropertyName("@id"u8);
5454
writer.WriteStringValue(iTriggerInvocationExpression.Id);
5555

56-
writer.WritePropertyName("@type");
56+
writer.WritePropertyName("@type"u8);
5757
writer.WriteStringValue("TriggerInvocationExpression");
5858

59-
writer.WritePropertyName("kind");
59+
writer.WritePropertyName("kind"u8);
6060
writer.WriteStringValue(iTriggerInvocationExpression.Kind.ToString().ToUpper());
6161

62-
writer.WritePropertyName("direction");
62+
writer.WritePropertyName("direction"u8);
6363
if (iTriggerInvocationExpression.Direction.HasValue)
6464
{
6565
writer.WriteStringValue(iTriggerInvocationExpression.Direction.Value.ToString().ToUpper());
@@ -69,54 +69,54 @@ public static void Serialize(ITriggerInvocationExpression iTriggerInvocationExpr
6969
writer.WriteNullValue();
7070
}
7171

72-
writer.WritePropertyName("isComposite");
72+
writer.WritePropertyName("isComposite"u8);
7373
writer.WriteBooleanValue(iTriggerInvocationExpression.IsComposite);
7474

75-
writer.WritePropertyName("isDerived");
75+
writer.WritePropertyName("isDerived"u8);
7676
writer.WriteBooleanValue(iTriggerInvocationExpression.IsDerived);
7777

78-
writer.WritePropertyName("isEnd");
78+
writer.WritePropertyName("isEnd"u8);
7979
writer.WriteBooleanValue(iTriggerInvocationExpression.IsEnd);
8080

81-
writer.WritePropertyName("isOrdered");
81+
writer.WritePropertyName("isOrdered"u8);
8282
writer.WriteBooleanValue(iTriggerInvocationExpression.IsOrdered);
8383

84-
writer.WritePropertyName("isPortion");
84+
writer.WritePropertyName("isPortion"u8);
8585
writer.WriteBooleanValue(iTriggerInvocationExpression.IsPortion);
8686

87-
writer.WritePropertyName("isReadOnly");
87+
writer.WritePropertyName("isReadOnly"u8);
8888
writer.WriteBooleanValue(iTriggerInvocationExpression.IsReadOnly);
8989

90-
writer.WritePropertyName("isUnique");
90+
writer.WritePropertyName("isUnique"u8);
9191
writer.WriteBooleanValue(iTriggerInvocationExpression.IsUnique);
9292

93-
writer.WritePropertyName("isAbstract");
93+
writer.WritePropertyName("isAbstract"u8);
9494
writer.WriteBooleanValue(iTriggerInvocationExpression.IsAbstract);
9595

96-
writer.WritePropertyName("isSufficient");
96+
writer.WritePropertyName("isSufficient"u8);
9797
writer.WriteBooleanValue(iTriggerInvocationExpression.IsSufficient);
9898

99-
writer.WriteStartArray("aliasIds");
99+
writer.WriteStartArray("aliasIds"u8);
100100
foreach (var item in iTriggerInvocationExpression.AliasIds)
101101
{
102102
writer.WriteStringValue(item);
103103
}
104104
writer.WriteEndArray();
105105

106-
writer.WritePropertyName("elementId");
106+
writer.WritePropertyName("elementId"u8);
107107
writer.WriteStringValue(iTriggerInvocationExpression.ElementId);
108108

109-
writer.WritePropertyName("name");
109+
writer.WritePropertyName("name"u8);
110110
writer.WriteStringValue(iTriggerInvocationExpression.Name);
111111

112-
writer.WriteStartArray("ownedRelationship");
112+
writer.WriteStartArray("ownedRelationship"u8);
113113
foreach (var item in iTriggerInvocationExpression.OwnedRelationship)
114114
{
115115
writer.WriteStringValue(item);
116116
}
117117
writer.WriteEndArray();
118118

119-
writer.WritePropertyName("owningRelationship");
119+
writer.WritePropertyName("owningRelationship"u8);
120120
if (iTriggerInvocationExpression.OwningRelationship.HasValue)
121121
{
122122
writer.WriteStringValue(iTriggerInvocationExpression.OwningRelationship.Value);
@@ -126,7 +126,7 @@ public static void Serialize(ITriggerInvocationExpression iTriggerInvocationExpr
126126
writer.WriteNullValue();
127127
}
128128

129-
writer.WritePropertyName("shortName");
129+
writer.WritePropertyName("shortName"u8);
130130
writer.WriteStringValue(iTriggerInvocationExpression.ShortName);
131131

132132
writer.WriteEndObject();

SysML2.NET.CodeGenerator/SysML2.NET.CodeGenerator.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
</PropertyGroup>
2222

2323
<ItemGroup>
24-
<PackageReference Include="ECoreNetto.HandleBars" Version="1.0.0" />
25-
<PackageReference Include="HtmlAgilityPack" Version="1.11.46" />
24+
<PackageReference Include="ECoreNetto.HandleBars" Version="1.1.0" />
25+
<PackageReference Include="HtmlAgilityPack" Version="1.11.52" />
2626
<PackageReference Include="Microsoft.CodeAnalysis" Version="4.5.0" />
2727
<PackageReference Include="RHEA.OpenApi" Version="0.4.0" />
2828
</ItemGroup>

SysML2.NET.CodeGenerator/Templates/core-json-dto-serializer-template.hbs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,12 @@ namespace SysML2.NET.Serializer.Json.Core.DTO
7272
writer.WriteStartArray("{{String.LowerCaseFirstLetter structuralFeature.Name }}"u8);
7373
foreach (var item in i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name}})
7474
{
75-
{{#if (StructuralFeature.QueryIsBool structuralFeature )}}
75+
{{#if (structuralFeature.QueryIsReference structuralFeature)}}
76+
writer.WriteStartObject();
77+
writer.WritePropertyName("@id"u8);
78+
writer.WriteStringValue(item);
79+
writer.WriteEndObject();
80+
{{else if (StructuralFeature.QueryIsBool structuralFeature )}}
7681
writer.WriteBooleanValue(item);
7782
{{else if (StructuralFeature.QueryIsNumeric structuralFeature )}}
7883
writer.WriteNumberValue(item);
@@ -91,7 +96,12 @@ namespace SysML2.NET.Serializer.Json.Core.DTO
9196
{{ else }}
9297
if (i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }}.HasValue)
9398
{
94-
{{#if (StructuralFeature.QueryIsBool structuralFeature )}}
99+
{{#if (structuralFeature.QueryIsReference structuralFeature)}}
100+
writer.WriteStartObject();
101+
writer.WritePropertyName("@id"u8);
102+
writer.WriteStringValue(i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }}.Value);
103+
writer.WriteEndObject();
104+
{{else if (StructuralFeature.QueryIsBool structuralFeature )}}
95105
writer.WriteBooleanValue(i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }}.Value);
96106
{{else if (StructuralFeature.QueryIsNumeric structuralFeature )}}
97107
writer.WriteNumberValue(i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }}.Value);
@@ -108,7 +118,12 @@ namespace SysML2.NET.Serializer.Json.Core.DTO
108118
{{/if}}
109119
{{ else if (StructuralFeature.QueryIsScalar structuralFeature)}}
110120
writer.WritePropertyName("{{ String.LowerCaseFirstLetter structuralFeature.Name }}"u8);
111-
{{#if (StructuralFeature.QueryIsBool structuralFeature )}}
121+
{{#if (structuralFeature.QueryIsReference structuralFeature)}}
122+
writer.WriteStartObject();
123+
writer.WritePropertyName("@id"u8);
124+
writer.WriteStringValue(i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }});
125+
writer.WriteEndObject();
126+
{{else if (StructuralFeature.QueryIsBool structuralFeature )}}
112127
writer.WriteBooleanValue(i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }});
113128
{{else if (StructuralFeature.QueryIsString structuralFeature )}}
114129
writer.WriteStringValue(i{{EClass.Name}}.{{String.CapitalizeFirstLetter structuralFeature.Name }});

SysML2.NET.Serializer.Json/Core/AutoGenSerializer/AcceptActionUsageSerializer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,20 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
126126
writer.WriteStartArray("ownedRelationship"u8);
127127
foreach (var item in iAcceptActionUsage.OwnedRelationship)
128128
{
129+
writer.WriteStartObject();
130+
writer.WritePropertyName("@id"u8);
129131
writer.WriteStringValue(item);
132+
writer.WriteEndObject();
130133
}
131134
writer.WriteEndArray();
132135

133136
writer.WritePropertyName("owningRelationship"u8);
134137
if (iAcceptActionUsage.OwningRelationship.HasValue)
135138
{
139+
writer.WriteStartObject();
140+
writer.WritePropertyName("@id"u8);
136141
writer.WriteStringValue(iAcceptActionUsage.OwningRelationship.Value);
142+
writer.WriteEndObject();
137143
}
138144
else
139145
{

SysML2.NET.Serializer.Json/Core/AutoGenSerializer/ActionDefinitionSerializer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,20 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
9696
writer.WriteStartArray("ownedRelationship"u8);
9797
foreach (var item in iActionDefinition.OwnedRelationship)
9898
{
99+
writer.WriteStartObject();
100+
writer.WritePropertyName("@id"u8);
99101
writer.WriteStringValue(item);
102+
writer.WriteEndObject();
100103
}
101104
writer.WriteEndArray();
102105

103106
writer.WritePropertyName("owningRelationship"u8);
104107
if (iActionDefinition.OwningRelationship.HasValue)
105108
{
109+
writer.WriteStartObject();
110+
writer.WritePropertyName("@id"u8);
106111
writer.WriteStringValue(iActionDefinition.OwningRelationship.Value);
112+
writer.WriteEndObject();
107113
}
108114
else
109115
{

SysML2.NET.Serializer.Json/Core/AutoGenSerializer/ActionUsageSerializer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,20 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
126126
writer.WriteStartArray("ownedRelationship"u8);
127127
foreach (var item in iActionUsage.OwnedRelationship)
128128
{
129+
writer.WriteStartObject();
130+
writer.WritePropertyName("@id"u8);
129131
writer.WriteStringValue(item);
132+
writer.WriteEndObject();
130133
}
131134
writer.WriteEndArray();
132135

133136
writer.WritePropertyName("owningRelationship"u8);
134137
if (iActionUsage.OwningRelationship.HasValue)
135138
{
139+
writer.WriteStartObject();
140+
writer.WritePropertyName("@id"u8);
136141
writer.WriteStringValue(iActionUsage.OwningRelationship.Value);
142+
writer.WriteEndObject();
137143
}
138144
else
139145
{

SysML2.NET.Serializer.Json/Core/AutoGenSerializer/ActorMembershipSerializer.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
7979
writer.WriteStringValue(iActorMembership.ElementId);
8080

8181
writer.WritePropertyName("feature"u8);
82+
writer.WriteStartObject();
83+
writer.WritePropertyName("@id"u8);
8284
writer.WriteStringValue(iActorMembership.Feature);
85+
writer.WriteEndObject();
8386

8487
writer.WritePropertyName("isImplied"u8);
8588
writer.WriteBooleanValue(iActorMembership.IsImplied);
@@ -88,7 +91,10 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
8891
writer.WriteBooleanValue(iActorMembership.IsImpliedIncluded);
8992

9093
writer.WritePropertyName("memberElement"u8);
94+
writer.WriteStartObject();
95+
writer.WritePropertyName("@id"u8);
9196
writer.WriteStringValue(iActorMembership.MemberElement);
97+
writer.WriteEndObject();
9298

9399
writer.WritePropertyName("memberName"u8);
94100
writer.WriteStringValue(iActorMembership.MemberName);
@@ -97,21 +103,30 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
97103
writer.WriteStartArray("ownedRelatedElement"u8);
98104
foreach (var item in iActorMembership.OwnedRelatedElement)
99105
{
106+
writer.WriteStartObject();
107+
writer.WritePropertyName("@id"u8);
100108
writer.WriteStringValue(item);
109+
writer.WriteEndObject();
101110
}
102111
writer.WriteEndArray();
103112

104113
writer.WriteStartArray("ownedRelationship"u8);
105114
foreach (var item in iActorMembership.OwnedRelationship)
106115
{
116+
writer.WriteStartObject();
117+
writer.WritePropertyName("@id"u8);
107118
writer.WriteStringValue(item);
119+
writer.WriteEndObject();
108120
}
109121
writer.WriteEndArray();
110122

111123
writer.WritePropertyName("owningRelatedElement"u8);
112124
if (iActorMembership.OwningRelatedElement.HasValue)
113125
{
126+
writer.WriteStartObject();
127+
writer.WritePropertyName("@id"u8);
114128
writer.WriteStringValue(iActorMembership.OwningRelatedElement.Value);
129+
writer.WriteEndObject();
115130
}
116131
else
117132
{
@@ -120,7 +135,10 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
120135
writer.WritePropertyName("owningRelationship"u8);
121136
if (iActorMembership.OwningRelationship.HasValue)
122137
{
138+
writer.WriteStartObject();
139+
writer.WritePropertyName("@id"u8);
123140
writer.WriteStringValue(iActorMembership.OwningRelationship.Value);
141+
writer.WriteEndObject();
124142
}
125143
else
126144
{
@@ -129,19 +147,28 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
129147
writer.WriteStartArray("source"u8);
130148
foreach (var item in iActorMembership.Source)
131149
{
150+
writer.WriteStartObject();
151+
writer.WritePropertyName("@id"u8);
132152
writer.WriteStringValue(item);
153+
writer.WriteEndObject();
133154
}
134155
writer.WriteEndArray();
135156

136157
writer.WriteStartArray("target"u8);
137158
foreach (var item in iActorMembership.Target)
138159
{
160+
writer.WriteStartObject();
161+
writer.WritePropertyName("@id"u8);
139162
writer.WriteStringValue(item);
163+
writer.WriteEndObject();
140164
}
141165
writer.WriteEndArray();
142166

143167
writer.WritePropertyName("type"u8);
168+
writer.WriteStartObject();
169+
writer.WritePropertyName("@id"u8);
144170
writer.WriteStringValue(iActorMembership.Type);
171+
writer.WriteEndObject();
145172

146173
writer.WritePropertyName("visibility"u8);
147174
writer.WriteStringValue(iActorMembership.Visibility.ToString().ToLower());

SysML2.NET.Serializer.Json/Core/AutoGenSerializer/AllocationDefinitionSerializer.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,21 +99,30 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
9999
writer.WriteStartArray("ownedRelatedElement"u8);
100100
foreach (var item in iAllocationDefinition.OwnedRelatedElement)
101101
{
102+
writer.WriteStartObject();
103+
writer.WritePropertyName("@id"u8);
102104
writer.WriteStringValue(item);
105+
writer.WriteEndObject();
103106
}
104107
writer.WriteEndArray();
105108

106109
writer.WriteStartArray("ownedRelationship"u8);
107110
foreach (var item in iAllocationDefinition.OwnedRelationship)
108111
{
112+
writer.WriteStartObject();
113+
writer.WritePropertyName("@id"u8);
109114
writer.WriteStringValue(item);
115+
writer.WriteEndObject();
110116
}
111117
writer.WriteEndArray();
112118

113119
writer.WritePropertyName("owningRelatedElement"u8);
114120
if (iAllocationDefinition.OwningRelatedElement.HasValue)
115121
{
122+
writer.WriteStartObject();
123+
writer.WritePropertyName("@id"u8);
116124
writer.WriteStringValue(iAllocationDefinition.OwningRelatedElement.Value);
125+
writer.WriteEndObject();
117126
}
118127
else
119128
{
@@ -122,7 +131,10 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
122131
writer.WritePropertyName("owningRelationship"u8);
123132
if (iAllocationDefinition.OwningRelationship.HasValue)
124133
{
134+
writer.WriteStartObject();
135+
writer.WritePropertyName("@id"u8);
125136
writer.WriteStringValue(iAllocationDefinition.OwningRelationship.Value);
137+
writer.WriteEndObject();
126138
}
127139
else
128140
{
@@ -131,14 +143,20 @@ internal static void Serialize(object obj, Utf8JsonWriter writer, SerializationM
131143
writer.WriteStartArray("source"u8);
132144
foreach (var item in iAllocationDefinition.Source)
133145
{
146+
writer.WriteStartObject();
147+
writer.WritePropertyName("@id"u8);
134148
writer.WriteStringValue(item);
149+
writer.WriteEndObject();
135150
}
136151
writer.WriteEndArray();
137152

138153
writer.WriteStartArray("target"u8);
139154
foreach (var item in iAllocationDefinition.Target)
140155
{
156+
writer.WriteStartObject();
157+
writer.WritePropertyName("@id"u8);
141158
writer.WriteStringValue(item);
159+
writer.WriteEndObject();
142160
}
143161
writer.WriteEndArray();
144162

0 commit comments

Comments
 (0)