@@ -181,7 +181,7 @@ public void generate() throws IOException
181
181
out .append (generateVarData (fieldPrecedenceModel , varData , BASE_INDENT + INDENT ));
182
182
183
183
out .append (generateDisplay (toUpperFirstChar (msgToken .name ()),
184
- fields , groups , varData , fieldPrecedenceModel ));
184
+ className , fields , groups , varData , fieldPrecedenceModel ));
185
185
186
186
out .append (INDENT + "}\n " );
187
187
out .append ("}\n " );
@@ -2406,13 +2406,22 @@ private int writeTokenDisplay(
2406
2406
return lengthBeforeFieldSeparator ;
2407
2407
}
2408
2408
2409
- private void appendToString (final StringBuilder sb , final String indent )
2409
+ private void appendToString (final StringBuilder sb , final String indent , final String className )
2410
2410
{
2411
2411
sb .append ('\n' );
2412
2412
append (sb , indent , "public override string ToString()" );
2413
2413
append (sb , indent , "{" );
2414
2414
append (sb , indent , " var sb = new StringBuilder(100);" );
2415
- append (sb , indent , " this.BuildString(sb);" );
2415
+ if (null != className )
2416
+ {
2417
+ append (sb , indent , " var m = new " + className + "();" );
2418
+ append (sb , indent , " m.WrapForDecode(_buffer, _offset, _actingBlockLength, _actingVersion);" );
2419
+ append (sb , indent , " m.BuildString(sb);" );
2420
+ }
2421
+ else
2422
+ {
2423
+ append (sb , indent , " this.BuildString(sb);" );
2424
+ }
2416
2425
append (sb , indent , " return sb.ToString();" );
2417
2426
append (sb , indent , "}" );
2418
2427
}
@@ -2437,14 +2446,15 @@ private CharSequence generateChoiceDisplay(final String enumName)
2437
2446
2438
2447
private CharSequence generateDisplay (
2439
2448
final String name ,
2449
+ final String className ,
2440
2450
final List <Token > tokens ,
2441
2451
final List <Token > groups ,
2442
2452
final List <Token > varData ,
2443
2453
final FieldPrecedenceModel fieldPrecedenceModel )
2444
2454
{
2445
2455
final StringBuilder sb = new StringBuilder (100 );
2446
2456
2447
- appendToString (sb , TWO_INDENT );
2457
+ appendToString (sb , TWO_INDENT , className );
2448
2458
sb .append ('\n' );
2449
2459
append (sb , TWO_INDENT , "internal void BuildString(StringBuilder builder)" );
2450
2460
append (sb , TWO_INDENT , "{" );
@@ -2502,7 +2512,7 @@ private CharSequence generateCompositeDisplay(final List<Token> tokens)
2502
2512
{
2503
2513
final StringBuilder sb = new StringBuilder ();
2504
2514
2505
- appendToString (sb , TWO_INDENT );
2515
+ appendToString (sb , TWO_INDENT , null );
2506
2516
sb .append ('\n' );
2507
2517
append (sb , TWO_INDENT , "internal void BuildString(StringBuilder builder)" );
2508
2518
append (sb , TWO_INDENT , "{" );
0 commit comments