Skip to content

Commit 17bf0ed

Browse files
author
sam.gerene
committed
[Add] DTO serializer template and generated code
1 parent 2e1415f commit 17bf0ed

File tree

174 files changed

+23451
-113
lines changed

Some content is hidden

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

174 files changed

+23451
-113
lines changed

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

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ namespace SysML2.NET.Serializer
2929
using SysML2.NET.DTO;
3030

3131
/// <summary>
32-
/// The purpose of the <see cref="ElementSerializer"/> is to build <see cref="JObject"/> and a <see cref="AnnouncementOfOpportunity"/> object
32+
/// The purpose of the <see cref="ElementSerializer"/> is to provide serialization
33+
/// and deserialization capabilities
3334
/// </summary>
3435
internal static class ElementSerializer
3536
{
@@ -45,48 +46,48 @@ internal static class ElementSerializer
4546
/// <param name="serializationModeKind">
4647
/// enumeration specifying what kind of serialization shall be used
4748
/// </param>
48-
public static void Serialize(IElement element, Utf8JsonWriter writer, SerializationModeKind serializationModeKind)
49+
public static void Serialize(IElement iElement, Utf8JsonWriter writer, SerializationModeKind serializationModeKind)
4950
{
5051
writer.WriteStartObject();
5152

5253
writer.WritePropertyName("@id");
53-
writer.WriteStringValue(element.Id);
54+
writer.WriteStringValue(iElement.Id);
5455

5556
writer.WritePropertyName("@type");
5657
writer.WriteStringValue("Element");
57-
58+
5859
writer.WriteStartArray("aliasIds");
59-
foreach (var aliasId in element.AliasIds)
60+
foreach (var item in iElement.AliasIds)
6061
{
61-
writer.WriteStringValue(aliasId);
62+
writer.WriteStringValue(item);
6263
}
6364
writer.WriteEndArray();
6465

6566
writer.WritePropertyName("elementId");
66-
writer.WriteStringValue(element.ElementId);
67+
writer.WriteStringValue(iElement.ElementId);
6768

6869
writer.WritePropertyName("name");
69-
writer.WriteStringValue(element.Name);
70+
writer.WriteStringValue(iElement.Name);
7071

7172
writer.WriteStartArray("ownedRelationship");
72-
foreach (var ownedRelationship in element.OwnedRelationship)
73+
foreach (var item in iElement.OwnedRelationship)
7374
{
74-
writer.WriteStringValue(ownedRelationship);
75+
writer.WriteStringValue(item);
7576
}
7677
writer.WriteEndArray();
77-
78+
7879
writer.WritePropertyName("owningRelationship");
79-
if (element.OwningRelationship.HasValue)
80+
if (iElement.OwningRelationship.HasValue)
8081
{
81-
writer.WriteStringValue(element.OwningRelationship.Value);
82+
writer.WriteStringValue(iElement.OwningRelationship.Value);
8283
}
8384
else
8485
{
8586
writer.WriteNullValue();
8687
}
8788

8889
writer.WritePropertyName("shortName");
89-
writer.WriteStringValue(element.ShortName);
90+
writer.WriteStringValue(iElement.ShortName);
9091

9192
writer.WriteEndObject();
9293
}
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
// -------------------------------------------------------------------------------------------------
2+
// <copyright file="TriggerInvocationExpressionSerializer.cs" company="RHEA System S.A.">
3+
//
4+
// Copyright 2022 RHEA System S.A.
5+
//
6+
// Licensed under the Apache License, Version 2.0 (the "License");
7+
// you may not use this file except in compliance with the License.
8+
// You may obtain a copy of the License at
9+
//
10+
// http://www.apache.org/licenses/LICENSE-2.0
11+
//
12+
// Unless required by applicable law or agreed to in writing, software
13+
// distributed under the License is distributed on an "AS IS" BASIS,
14+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
// See the License for the specific language governing permissions and
16+
// limitations under the License.
17+
//
18+
// </copyright>
19+
// ------------------------------------------------------------------------------------------------
20+
21+
// ------------------------------------------------------------------------------------------------
22+
// --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!--------
23+
// ------------------------------------------------------------------------------------------------
24+
25+
namespace SysML2.NET.Serializer
26+
{
27+
using System.Text.Json;
28+
29+
using SysML2.NET.DTO;
30+
31+
/// <summary>
32+
/// The purpose of the <see cref="TriggerInvocationExpressionSerializer"/> is to provide serialization
33+
/// and deserialization capabilities
34+
/// </summary>
35+
internal static class TriggerInvocationExpressionSerializer
36+
{
37+
/// <summary>
38+
/// Serializes an instance of <see cref="ITriggerInvocationExpression"/> using an <see cref="Utf8JsonWriter"/>
39+
/// </summary>
40+
/// <param name="triggerInvocationExpression">
41+
/// The <see cref="ITriggerInvocationExpression"/> to serialize
42+
/// </param>
43+
/// <param name="writer">
44+
/// The target <see cref="Utf8JsonWriter"/>
45+
/// </param>
46+
/// <param name="serializationModeKind">
47+
/// enumeration specifying what kind of serialization shall be used
48+
/// </param>
49+
public static void Serialize(ITriggerInvocationExpression iTriggerInvocationExpression, Utf8JsonWriter writer, SerializationModeKind serializationModeKind)
50+
{
51+
writer.WriteStartObject();
52+
53+
writer.WritePropertyName("@id");
54+
writer.WriteStringValue(iTriggerInvocationExpression.Id);
55+
56+
writer.WritePropertyName("@type");
57+
writer.WriteStringValue("TriggerInvocationExpression");
58+
59+
writer.WritePropertyName("kind");
60+
writer.WriteStringValue(iTriggerInvocationExpression.Kind.ToString().ToUpper());
61+
62+
writer.WritePropertyName("direction");
63+
if (iTriggerInvocationExpression.Direction.HasValue)
64+
{
65+
writer.WriteStringValue(iTriggerInvocationExpression.Direction.Value.ToString().ToUpper());
66+
}
67+
else
68+
{
69+
writer.WriteNullValue();
70+
}
71+
72+
writer.WritePropertyName("isComposite");
73+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsComposite);
74+
75+
writer.WritePropertyName("isDerived");
76+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsDerived);
77+
78+
writer.WritePropertyName("isEnd");
79+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsEnd);
80+
81+
writer.WritePropertyName("isOrdered");
82+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsOrdered);
83+
84+
writer.WritePropertyName("isPortion");
85+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsPortion);
86+
87+
writer.WritePropertyName("isReadOnly");
88+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsReadOnly);
89+
90+
writer.WritePropertyName("isUnique");
91+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsUnique);
92+
93+
writer.WritePropertyName("isAbstract");
94+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsAbstract);
95+
96+
writer.WritePropertyName("isSufficient");
97+
writer.WriteBooleanValue(iTriggerInvocationExpression.IsSufficient);
98+
99+
writer.WriteStartArray("aliasIds");
100+
foreach (var item in iTriggerInvocationExpression.AliasIds)
101+
{
102+
writer.WriteStringValue(item);
103+
}
104+
writer.WriteEndArray();
105+
106+
writer.WritePropertyName("elementId");
107+
writer.WriteStringValue(iTriggerInvocationExpression.ElementId);
108+
109+
writer.WritePropertyName("name");
110+
writer.WriteStringValue(iTriggerInvocationExpression.Name);
111+
112+
writer.WriteStartArray("ownedRelationship");
113+
foreach (var item in iTriggerInvocationExpression.OwnedRelationship)
114+
{
115+
writer.WriteStringValue(item);
116+
}
117+
writer.WriteEndArray();
118+
119+
writer.WritePropertyName("owningRelationship");
120+
if (iTriggerInvocationExpression.OwningRelationship.HasValue)
121+
{
122+
writer.WriteStringValue(iTriggerInvocationExpression.OwningRelationship.Value);
123+
}
124+
else
125+
{
126+
writer.WriteNullValue();
127+
}
128+
129+
writer.WritePropertyName("shortName");
130+
writer.WriteStringValue(iTriggerInvocationExpression.ShortName);
131+
132+
writer.WriteEndObject();
133+
}
134+
}
135+
}
136+
137+
// ------------------------------------------------------------------------------------------------
138+
// --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!--------
139+
// ------------------------------------------------------------------------------------------------

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<ItemGroup>
2020
<Compile Remove="Expected\AutoGenEnum\VisibilityKind.cs" />
2121
<Compile Remove="Expected\AutoGenSerializer\ElementSerializer.cs" />
22+
<Compile Remove="Expected\AutoGenSerializer\TriggerInvocationExpressionSerializer.cs" />
2223
</ItemGroup>
2324

2425
<ItemGroup>
@@ -32,6 +33,9 @@
3233
<Content Include="Expected\AutoGenSerializer\ElementSerializer.cs">
3334
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
3435
</Content>
36+
<Content Include="Expected\AutoGenSerializer\TriggerInvocationExpressionSerializer.cs">
37+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
38+
</Content>
3539
</ItemGroup>
3640

3741
<ItemGroup>

0 commit comments

Comments
 (0)