@@ -181,7 +181,7 @@ public void generate() throws IOException
181181 out .append (generateVarData (fieldPrecedenceModel , varData , BASE_INDENT + INDENT ));
182182
183183 out .append (generateDisplay (toUpperFirstChar (msgToken .name ()),
184- fields , groups , varData , fieldPrecedenceModel ));
184+ className , fields , groups , varData , fieldPrecedenceModel ));
185185
186186 out .append (INDENT + "}\n " );
187187 out .append ("}\n " );
@@ -2406,13 +2406,22 @@ private int writeTokenDisplay(
24062406 return lengthBeforeFieldSeparator ;
24072407 }
24082408
2409- private void appendToString (final StringBuilder sb , final String indent )
2409+ private void appendToString (final StringBuilder sb , final String indent , final String className )
24102410 {
24112411 sb .append ('\n' );
24122412 append (sb , indent , "public override string ToString()" );
24132413 append (sb , indent , "{" );
24142414 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+ }
24162425 append (sb , indent , " return sb.ToString();" );
24172426 append (sb , indent , "}" );
24182427 }
@@ -2437,14 +2446,15 @@ private CharSequence generateChoiceDisplay(final String enumName)
24372446
24382447 private CharSequence generateDisplay (
24392448 final String name ,
2449+ final String className ,
24402450 final List <Token > tokens ,
24412451 final List <Token > groups ,
24422452 final List <Token > varData ,
24432453 final FieldPrecedenceModel fieldPrecedenceModel )
24442454 {
24452455 final StringBuilder sb = new StringBuilder (100 );
24462456
2447- appendToString (sb , TWO_INDENT );
2457+ appendToString (sb , TWO_INDENT , className );
24482458 sb .append ('\n' );
24492459 append (sb , TWO_INDENT , "internal void BuildString(StringBuilder builder)" );
24502460 append (sb , TWO_INDENT , "{" );
@@ -2502,7 +2512,7 @@ private CharSequence generateCompositeDisplay(final List<Token> tokens)
25022512 {
25032513 final StringBuilder sb = new StringBuilder ();
25042514
2505- appendToString (sb , TWO_INDENT );
2515+ appendToString (sb , TWO_INDENT , null );
25062516 sb .append ('\n' );
25072517 append (sb , TWO_INDENT , "internal void BuildString(StringBuilder builder)" );
25082518 append (sb , TWO_INDENT , "{" );
0 commit comments