Skip to content

Commit

Permalink
update to use singleton
Browse files Browse the repository at this point in the history
  • Loading branch information
DamienM419 committed Sep 19, 2024
1 parent 939d83a commit e8d85a9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
16 changes: 9 additions & 7 deletions Cql/CodeGeneration.NET/CSharpSourceCodeWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -198,14 +198,17 @@ private void writeClass(DefinitionDictionary<LambdaExpression> definitions,
writer.WriteLine(indentLevel, $"[CqlLibrary(\"{libraryAttribute}\", \"{versionAttribute}\")]");
var className = VariableNameGenerator.NormalizeIdentifier(libraryName);
if (PartialClass)
writer.WriteLine(indentLevel, $"partial static class {className}");
writer.WriteLine(indentLevel, $"public partial class {className}");
else
writer.WriteLine(indentLevel, $"public static class {className}");
writer.WriteLine(indentLevel, $"public class {className}");
writer.WriteLine(indentLevel, "{");
writer.WriteLine();
indentLevel += 1;
// Class
{
writer.WriteLine(indentLevel, $"public static {className} Instance {{ get; }} = new();");
writer.WriteLine();

writeMethods(definitions, libraryName, writer, indentLevel);
indentLevel -= 1;
writer.WriteLine(indentLevel, "}");
Expand All @@ -219,7 +222,7 @@ private void writeMethods(DefinitionDictionary<LambdaExpression> definitions, st
foreach (var overload in kvp.Value)
{
definitions.TryGetTags(libraryName, kvp.Key, overload.Signature, out var tags);
WriteMemoizedInstanceMethod(libraryName, writer, indentLevel, kvp.Key, overload.T, tags);
writeMethod(libraryName, writer, indentLevel, kvp.Key, overload.T, tags);
writer.WriteLine();
}
}
Expand Down Expand Up @@ -277,7 +280,7 @@ private IList<DirectedGraphNode> DetermineBuildOrder(DirectedGraph minimalGraph)
return sorted;
}

private void WriteMemoizedInstanceMethod(string libraryName, TextWriter writer, int indentLevel,
private void writeMethod(string libraryName, TextWriter writer, int indentLevel,
string cqlName,
LambdaExpression overload,
ILookup<string, string>? tags)
Expand Down Expand Up @@ -321,14 +324,13 @@ private void WriteMemoizedInstanceMethod(string libraryName, TextWriter writer,
}
}

var func = expressionConverter.ConvertTopLevelFunctionDefinition(indentLevel, overload, methodName!, "public static");
writer.Write(func);
writer.Write(expressionConverter.ConvertTopLevelFunctionDefinition(indentLevel, overload, methodName!, "public"));
}
else
{
writer.WriteLine(indentLevel, $"[CqlDeclaration(\"{cqlName}\")]");
WriteTags(writer, indentLevel, tags);
writer.Write(expressionConverter.ConvertTopLevelFunctionDefinition(indentLevel, overload, methodName!, "public static"));
writer.Write(expressionConverter.ConvertTopLevelFunctionDefinition(indentLevel, overload, methodName!, "public"));
// writer.WriteLine();
}
}
Expand Down
6 changes: 3 additions & 3 deletions Cql/CodeGeneration.NET/ExpressionConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ private string convertDefinitionCallExpression(int indent, string leadingIndentS
{
var sb = new StringBuilder();
sb.Append(leadingIndentString);
var target = VariableNameGenerator.NormalizeIdentifier(dce.LibraryName);

var target = dce.LibraryName == LibraryName ? "this" : $"{VariableNameGenerator.NormalizeIdentifier(dce.LibraryName)}.Instance";
var csFunctionName = VariableNameGenerator.NormalizeIdentifier(dce.DefinitionName);

sb.Append(CultureInfo.InvariantCulture, $"{target}.{csFunctionName}(context)");
Expand All @@ -79,7 +79,7 @@ private string convertFunctionCallExpression(int indent, string leadingIndentStr
var sb = new StringBuilder();
sb.Append(leadingIndentString);

var target = VariableNameGenerator.NormalizeIdentifier(fce.LibraryName);
var target = fce.LibraryName == LibraryName ? "this" : $"{VariableNameGenerator.NormalizeIdentifier(fce.LibraryName)}.Instance";
var csFunctionName = VariableNameGenerator.NormalizeIdentifier(fce.FunctionName);

sb.Append(CultureInfo.InvariantCulture, $"{target}.{csFunctionName}");
Expand Down

0 comments on commit e8d85a9

Please sign in to comment.