Skip to content

Commit

Permalink
Use conventions from JavaGenerator in CSharpGenerator where possible.
Browse files Browse the repository at this point in the history
Note that the `BuildString` methods are still unsafe to use during group
iteration.
  • Loading branch information
ZachBray committed Aug 1, 2024
1 parent 4ddf522 commit 4c8f35b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
2 changes: 1 addition & 1 deletion csharp/sbe-tests/Issue992Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void SetUp()
}

[TestMethod]
public void CheckToStringDontMessWithGroupIteration()
public void CheckToStringDoesNotBreakGroupIteration()
{
var encoder = new MDIncrementalRefreshBook46()
.WrapForEncodeAndApplyHeader(_buffer, Offset, _messageHeader);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2406,22 +2406,26 @@ private int writeTokenDisplay(
return lengthBeforeFieldSeparator;
}

private void appendToString(final StringBuilder sb, final String indent, final String className)
private void appendToString(final StringBuilder sb, final String indent)
{
sb.append('\n');
append(sb, indent, "public override string ToString()");
append(sb, indent, "{");
append(sb, indent, " var sb = new StringBuilder(100);");
if(null != className)
{
append(sb, indent, " var m = new " + className + "();");
append(sb, indent, " m.WrapForDecode(_buffer, _offset, _actingBlockLength, _actingVersion);");
append(sb, indent, " m.BuildString(sb);");
}
else
{
append(sb, indent, " this.BuildString(sb);");
}
append(sb, indent, " this.BuildString(sb);");
append(sb, indent, " return sb.ToString();");
append(sb, indent, "}");
}

private void appendMessageToString(final StringBuilder sb, final String indent, final String className)
{
sb.append('\n');
append(sb, indent, "public override string ToString()");
append(sb, indent, "{");
append(sb, indent, " var sb = new StringBuilder(100);");
append(sb, indent, " var m = new " + className + "();");
append(sb, indent, " m.WrapForDecode(_buffer, _offset, _actingBlockLength, _actingVersion);");
append(sb, indent, " m.BuildString(sb);");
append(sb, indent, " return sb.ToString();");
append(sb, indent, "}");
}
Expand Down Expand Up @@ -2454,7 +2458,7 @@ private CharSequence generateDisplay(
{
final StringBuilder sb = new StringBuilder(100);

appendToString(sb, TWO_INDENT, className);
appendMessageToString(sb, TWO_INDENT, className);
sb.append('\n');
append(sb, TWO_INDENT, "internal void BuildString(StringBuilder builder)");
append(sb, TWO_INDENT, "{");
Expand Down Expand Up @@ -2512,7 +2516,7 @@ private CharSequence generateCompositeDisplay(final List<Token> tokens)
{
final StringBuilder sb = new StringBuilder();

appendToString(sb, TWO_INDENT, null);
appendToString(sb, TWO_INDENT);
sb.append('\n');
append(sb, TWO_INDENT, "internal void BuildString(StringBuilder builder)");
append(sb, TWO_INDENT, "{");
Expand Down

0 comments on commit 4c8f35b

Please sign in to comment.