Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1589,11 +1589,11 @@

<ItemGroup>
<PackageReference Include="ECoreNetto.Reporting" Version="7.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit.Console" Version="3.21.1" />
<PackageReference Include="NUnit3TestAdapter" Version="6.0.1" />
<PackageReference Include="NUnit.Console" Version="3.22.0" />
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />

<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
10 changes: 0 additions & 10 deletions SysML2.NET.CodeGenerator/Extensions/PropertyExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,6 @@ namespace SysML2.NET.CodeGenerator.Extensions
/// </summary>
public static class PropertyExtension
{
/// <summary>
/// Asserts that the current <see cref="IProperty" /> is C# nullable and not a string primitive
/// </summary>
/// <param name="property">The <see cref="IProperty"/> to assert</param>
/// <returns>True is the <see cref="IProperty"/> is C# nullable and not a string</returns>
public static bool QueryIsNullableAndNotString(this IProperty property)
{
return property.QueryIsNullable() && property.QueryCSharpTypeName() != "string";
}

/// <summary>
/// Asserts that the <see cref="IProperty"/> is an enum type with a default value provided
/// </summary>
Expand Down
12 changes: 6 additions & 6 deletions SysML2.NET.CodeGenerator/HandleBarHelpers/ClassHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public static void RegisterClassHelper(this IHandlebars handlebars)

foreach (var prop in allProperties.Where(x => x.QueryIsEnum()))
{
uniqueNamespaces.Add(prop.Type.QueryNamespace());
uniqueNamespaces.Add(Extensions.NamedElementExtensions.QueryNamespace(prop.Type));
}

var orderedNamespaces = uniqueNamespaces.Order().ToList();
Expand All @@ -76,7 +76,7 @@ public static void RegisterClassHelper(this IHandlebars handlebars)
throw new ArgumentException("#Class.WriteEnumerationNameSpace supposed to be an IEnumeration");
}

writer.WriteSafeString($"using SysML2.NET.Core.{enumeration.QueryNamespace()};{Environment.NewLine}");
writer.WriteSafeString($"using SysML2.NET.Core.{Extensions.NamedElementExtensions.QueryNamespace(enumeration)};{Environment.NewLine}");
});

handlebars.RegisterHelper("Class.WriteNameSpaces", (writer, context, arguments) =>
Expand All @@ -99,7 +99,7 @@ public static void RegisterClassHelper(this IHandlebars handlebars)

foreach (var superClass in superClasses)
{
uniqueNamespaces.Add(superClass.QueryNamespace());
uniqueNamespaces.Add(Extensions.NamedElementExtensions.QueryNamespace(superClass));
}

if (namespacePrefix == "POCO")
Expand All @@ -108,7 +108,7 @@ public static void RegisterClassHelper(this IHandlebars handlebars)

foreach (var prop in allProperties.Where(x => x.QueryIsReferenceProperty()))
{
uniqueNamespaces.Add(prop.Type.QueryNamespace());
uniqueNamespaces.Add(Extensions.NamedElementExtensions.QueryNamespace(prop.Type));
}

var interfaceDerivedProperties =
Expand All @@ -120,13 +120,13 @@ public static void RegisterClassHelper(this IHandlebars handlebars)
{
if (interfaceDerivedProperty.Possessor is INamedElement owner)
{
var @namespace = owner.QueryNamespace();
var @namespace = Extensions.NamedElementExtensions.QueryNamespace(owner);
uniqueNamespaces.Add(@namespace);
}
}
}

uniqueNamespaces.Remove(@class.QueryNamespace());
uniqueNamespaces.Remove(Extensions.NamedElementExtensions.QueryNamespace(@class));
var orderedNamespaces = uniqueNamespaces.Order().ToList();

foreach (var orderedNamespace in orderedNamespaces)
Expand Down
40 changes: 20 additions & 20 deletions SysML2.NET.CodeGenerator/HandleBarHelpers/PropertyHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
{
sb.Append($"{property.QueryCSharpTypeName()}");

if (property.QueryIsNullableAndNotString())
if (uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(property))
{
sb.Append('?');
}
Expand All @@ -92,7 +92,7 @@
{
sb.Append("Guid");

if (property.QueryIsNullableAndNotString())
if (uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(property))
{
sb.Append('?');
}
Expand Down Expand Up @@ -154,7 +154,7 @@
{
sb.Append($"{property.QueryCSharpTypeName()}");

if (property.QueryIsNullableAndNotString())
if (uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(property))
{
sb.Append('?');
}
Expand All @@ -173,7 +173,7 @@
{
sb.Append("Guid");

if (property.QueryIsNullableAndNotString())
if (uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(property))
{
sb.Append('?');
}
Expand All @@ -192,9 +192,9 @@
var owner = (INamedElement)property.Owner;
propertyName = $"I{owner.Name}.{propertyName}";

var ownerNamespace = owner.QueryNamespace();
var ownerNamespace = Extensions.NamedElementExtensions.QueryNamespace(owner);

if (ownerNamespace != classContext.QueryNamespace())
if (ownerNamespace != Extensions.NamedElementExtensions.QueryNamespace(classContext))
{
propertyName = $"{ownerNamespace}.{propertyName}";
}
Expand Down Expand Up @@ -300,7 +300,7 @@
}
else
{
if (property.QueryIsNullableAndNotString() && !property.QueryIsReferenceProperty())
if (uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(property) && !property.QueryIsReferenceProperty())
{
sb.Append($"{typeName}? ");
}
Expand Down Expand Up @@ -371,7 +371,7 @@
}
else
{
if (property.QueryIsNullableAndNotString() && !property.QueryIsReferenceProperty())
if (uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(property) && !property.QueryIsReferenceProperty())
{
sb.Append($"{typeName}? ");
}
Expand All @@ -391,9 +391,9 @@
var owner = (INamedElement)property.Owner;
propertyName = $"I{owner.Name}.{propertyName}";

var ownerNamespace = owner.QueryNamespace();
var ownerNamespace = Extensions.NamedElementExtensions.QueryNamespace(owner);

if (ownerNamespace != classContext.QueryNamespace())
if (ownerNamespace != Extensions.NamedElementExtensions.QueryNamespace(classContext))
{
propertyName = $"{ownerNamespace}.{propertyName}";
}
Expand Down Expand Up @@ -612,7 +612,7 @@
if (property.TryQueryRedefinedByProperty(generatedClass, out var redefinitionProperty) && redefinitionProperty.Name == property.Name)
{
var owner = (INamedElement)property.Owner;
writer.WriteSafeString($"((SysML2.NET.Core.DTO.{owner.QueryNamespace()}.I{owner.Name}){variableName}).{propertyName}");
writer.WriteSafeString($"((SysML2.NET.Core.DTO.{Extensions.NamedElementExtensions.QueryNamespace(owner)}.I{owner.Name}){variableName}).{propertyName}");
}
else
{
Expand Down Expand Up @@ -645,7 +645,7 @@
if (redefinition.TryQueryRedefinedByProperty(context, out _))
{
var owner = (INamedElement)redefinition.Owner;
redefinitionPropertyName = $"((SysML2.NET.Core.DTO.{owner.QueryNamespace()}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
redefinitionPropertyName = $"((SysML2.NET.Core.DTO.{Extensions.NamedElementExtensions.QueryNamespace(owner)}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
}
else
{
Expand All @@ -659,13 +659,13 @@

if (redefinedProperty.QueryIsEnumerable() && !redefinition.QueryIsEnumerable())
{
return redefinition.QueryIsNullableAndNotString()
return uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(redefinition)
? $"{redefinitionPropertyName}.HasValue ? [{redefinitionPropertyName}.Value] : [];"
: $"[{redefinitionPropertyName}];";
}

return redefinition.QueryIsNullableAndNotString()
return uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(redefinition)
? $"{redefinitionPropertyName}.HasValue ? {redefinitionPropertyName}.Value : {(redefinedProperty.QueryIsReferenceProperty() ? "Guid.Empty" : "default")};"

Check warning on line 668 in SysML2.NET.CodeGenerator/HandleBarHelpers/PropertyHelper.cs

View workflow job for this annotation

GitHub Actions / Build

Extract this nested ternary operation into an independent statement. (https://rules.sonarsource.com/csharp/RSPEC-3358)
: $"{redefinitionPropertyName};";
}

Expand All @@ -675,15 +675,15 @@
/// <param name="redefinedProperty">The redefined property</param>
/// <param name="redefinition">The property that redefines <paramref name="redefinedProperty"/></param>
/// <param name="context">Gets the <see cref="IClass"/> context</param>
/// <returns>The getter imlementation</returns>
/// <returns>The getter implementation</returns>
private static string GetRedefinedPropertyGetterImplementationForPoco(IProperty redefinedProperty, IProperty redefinition, IClass context)
{
string redefinitionPropertyName;

if (redefinition.TryQueryRedefinedByProperty(context, out _))
{
var owner = (INamedElement)redefinition.Owner;
redefinitionPropertyName = $"((SysML2.NET.Core.POCO.{owner.QueryNamespace()}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
redefinitionPropertyName = $"((SysML2.NET.Core.POCO.{Extensions.NamedElementExtensions.QueryNamespace(owner)}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
}
else
{
Expand All @@ -707,12 +707,12 @@
return $"string.IsNullOrWhiteSpace({redefinitionPropertyName}) ? [{redefinitionPropertyName}] : [];";
}

return redefinition.QueryIsNullableAndNotString()
return uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(redefinition)
? $"{redefinitionPropertyName}.HasValue ? [{redefinitionPropertyName}.Value] : [];"
: $"[{redefinitionPropertyName}];";
}

return redefinition.QueryIsNullableAndNotString() && !redefinedProperty.QueryIsReferenceProperty()
return uml4net.Extensions.PropertyExtensions.QueryIsNullableAndNotString(redefinition) && !redefinedProperty.QueryIsReferenceProperty()
? $"{redefinitionPropertyName}.HasValue ? {redefinitionPropertyName}.Value : default;"
: $"{redefinitionPropertyName};";
}
Expand All @@ -736,7 +736,7 @@
if (redefinition.TryQueryRedefinedByProperty(context, out _))
{
var owner = (INamedElement)redefinition.Owner;
redefinitionPropertyName = $"((SysML2.NET.Core.DTO.{owner.QueryNamespace()}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
redefinitionPropertyName = $"((SysML2.NET.Core.DTO.{Extensions.NamedElementExtensions.QueryNamespace(owner)}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
}
else
{
Expand Down Expand Up @@ -775,7 +775,7 @@
if (redefinition.TryQueryRedefinedByProperty(context, out _))
{
var owner = (INamedElement)redefinition.Owner;
redefinitionPropertyName = $"((SysML2.NET.Core.POCO.{owner.QueryNamespace()}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
redefinitionPropertyName = $"((SysML2.NET.Core.POCO.{Extensions.NamedElementExtensions.QueryNamespace(owner)}.I{owner.Name})this).{redefinition.QueryPropertyNameBasedOnUmlProperties()}";
}
else
{
Expand Down
6 changes: 3 additions & 3 deletions SysML2.NET.CodeGenerator/SysML2.NET.CodeGenerator.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@

<!--
-->
<PackageReference Include="uml4net.HandleBars" Version="6.1.0" />
<PackageReference Include="uml4net.Reporting" Version="6.1.0" />
<PackageReference Include="uml4net.xmi" Version="5.1.0" />
<PackageReference Include="uml4net.HandleBars" Version="6.3.1" />
<PackageReference Include="uml4net.Reporting" Version="6.3.1" />
<PackageReference Include="uml4net.xmi" Version="5.3.1" />

<!--
<ProjectReference Include="..\..\..\uml4net\uml4net\uml4net.HandleBars\uml4net.HandleBars.csproj" />
Expand Down
6 changes: 3 additions & 3 deletions SysML2.NET.Dal.Tests/SysML2.NET.Dal.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit.Console" Version="3.21.1" />
<PackageReference Include="NUnit3TestAdapter" Version="6.0.1" />
<PackageReference Include="NUnit.Console" Version="3.22.0" />
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />

<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit.Console" Version="3.21.1" />
<PackageReference Include="NUnit3TestAdapter" Version="6.0.1" />
<PackageReference Include="NUnit.Console" Version="3.22.0" />
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />

<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit.Console" Version="3.21.1" />
<PackageReference Include="NUnit3TestAdapter" Version="6.0.1" />
<PackageReference Include="NUnit.Console" Version="3.22.0" />
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />

<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
4 changes: 2 additions & 2 deletions SysML2.NET.Serializer.Json/SysML2.NET.Serializer.Json.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Text.Json" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.1" />
<PackageReference Include="System.Text.Json" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Sbom.Targets" Version="4.1.5" PrivateAssets="all" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion SysML2.NET/SysML2.NET.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Sbom.Targets" Version="4.1.5" PrivateAssets="all" />
</ItemGroup>

Expand Down
Loading