@@ -132,13 +132,13 @@ public void generate() throws IOException
132132 collectVarData (messageBody , i , varData );
133133
134134 final  StringBuilder  sb  = new  StringBuilder ();
135-  out . append ( generateFields (className , fields , BASE_INDENT , false ) );
135+  generateFields (sb ,  className , fields , BASE_INDENT , false );
136136 generateGroups (sb , groups , BASE_INDENT );
137+  generateVarData (sb , className , varData , BASE_INDENT );
138+  generateDisplay (sb , msgToken .name (), fields , groups , varData , BASE_INDENT  + INDENT );
139+  sb .append ("};\n " );
140+  sb .append (CppUtil .closingBraces (ir .namespaces ().length )).append ("#endif\n " );
137141 out .append (sb );
138-  out .append (generateVarData (className , varData , BASE_INDENT ));
139-  out .append (generateDisplay (msgToken .name (), fields , groups , varData , BASE_INDENT  + INDENT ));
140-  out .append ("};\n " );
141-  out .append (CppUtil .closingBraces (ir .namespaces ().length )).append ("#endif\n " );
142142 }
143143 }
144144 }
@@ -165,20 +165,20 @@ private void generateGroups(final StringBuilder sb, final List<Token> tokens, fi
165165
166166 final  List <Token > fields  = new  ArrayList <>();
167167 i  = collectFields (tokens , i , fields );
168-  sb . append ( generateFields (formatClassName (groupName ), fields , indent  + INDENT , false ) );
168+  generateFields (sb ,  formatClassName (groupName ), fields , indent  + INDENT , false );
169169
170170 final  List <Token > groups  = new  ArrayList <>();
171171 i  = collectGroups (tokens , i , groups );
172172 generateGroups (sb , groups , indent  + INDENT );
173173
174174 final  List <Token > varData  = new  ArrayList <>();
175175 i  = collectVarData (tokens , i , varData );
176-  sb . append ( generateVarData (formatClassName (groupName ), varData , indent  + INDENT ) );
176+  generateVarData (sb ,  formatClassName (groupName ), varData , indent  + INDENT );
177177
178178 sb .append (generateGroupDisplay (groupName , fields , groups , varData , indent  + INDENT  + INDENT ));
179179
180180 sb .append (indent ).append (" };\n " );
181-  sb . append ( generateGroupProperty (groupName , groupToken , cppTypeForNumInGroup , indent ) );
181+  generateGroupProperty (sb ,  groupName , groupToken , cppTypeForNumInGroup , indent );
182182 }
183183 }
184184
@@ -350,11 +350,13 @@ private static void generateGroupClassHeader(
350350 .append (indent ).append ("#endif\n " );
351351 }
352352
353-  private  static  CharSequence  generateGroupProperty (
354-  final  String  groupName , final  Token  token , final  String  cppTypeForNumInGroup , final  String  indent )
353+  private  static  void  generateGroupProperty (
354+  final  StringBuilder  sb ,
355+  final  String  groupName ,
356+  final  Token  token ,
357+  final  String  cppTypeForNumInGroup ,
358+  final  String  indent )
355359 {
356-  final  StringBuilder  sb  = new  StringBuilder ();
357- 
358360 final  String  className  = formatClassName (groupName );
359361 final  String  propertyName  = formatPropertyName (groupName );
360362
@@ -413,14 +415,11 @@ private static CharSequence generateGroupProperty(
413415 indent  + " }\n " ,
414416 propertyName ,
415417 token .version ()));
416- 
417-  return  sb ;
418418 }
419419
420-  private  CharSequence  generateVarData (final  String  className , final  List <Token > tokens , final  String  indent )
420+  private  void  generateVarData (
421+  final  StringBuilder  sb , final  String  className , final  List <Token > tokens , final  String  indent )
421422 {
422-  final  StringBuilder  sb  = new  StringBuilder ();
423- 
424423 for  (int  i  = 0 , size  = tokens .size (); i  < size ;)
425424 {
426425 final  Token  token  = tokens .get (i );
@@ -604,8 +603,6 @@ private CharSequence generateVarData(final String className, final List<Token> t
604603
605604 i  += token .componentTokenCount ();
606605 }
607- 
608-  return  sb ;
609606 }
610607
611608 private  void  generateVarDataDescriptors (
@@ -1979,11 +1976,13 @@ private CharSequence generateMessageFlyweightCode(final String className, final
19791976 generateConstructorsAndOperators (className ));
19801977 }
19811978
1982-  private  CharSequence  generateFields (
1983-  final  String  containingClassName , final  List <Token > tokens , final  String  indent , final  boolean  inComposite )
1979+  private  void  generateFields (
1980+  final  StringBuilder  sb ,
1981+  final  String  containingClassName ,
1982+  final  List <Token > tokens ,
1983+  final  String  indent ,
1984+  final  boolean  inComposite )
19841985 {
1985-  final  StringBuilder  sb  = new  StringBuilder ();
1986- 
19871986 for  (int  i  = 0 , size  = tokens .size (); i  < size ; i ++)
19881987 {
19891988 final  Token  signalToken  = tokens .get (i );
@@ -2016,8 +2015,6 @@ private CharSequence generateFields(
20162015 }
20172016 }
20182017 }
2019- 
2020-  return  sb ;
20212018 }
20222019
20232020 private  void  generateFieldCommonMethods (
@@ -2339,14 +2336,15 @@ private CharSequence generateLiteral(final PrimitiveType type, final String valu
23392336 return  literal ;
23402337 }
23412338
2342-  private  CharSequence  generateDisplay (
2339+  private  void  generateDisplay (
2340+  final  StringBuilder  sb ,
23432341 final  String  name ,
23442342 final  List <Token > fields ,
23452343 final  List <Token > groups ,
23462344 final  List <Token > varData ,
23472345 final  String  indent )
23482346 {
2349-  return   String .format ("\n "  +
2347+  sb . append ( String .format ("\n "  +
23502348 indent  + "template<typename CharT, typename Traits>\n "  +
23512349 indent  + "friend std::basic_ostream<CharT, Traits>& operator<<(\n "  +
23522350 indent  + " std::basic_ostream<CharT, Traits>& builder, %1$s _writer)\n "  +
@@ -2363,7 +2361,7 @@ private CharSequence generateDisplay(
23632361 indent  + " return builder;\n "  +
23642362 indent  + "}\n " ,
23652363 formatClassName (name ),
2366-  appendDisplay (fields , groups , varData , indent  + INDENT ));
2364+  appendDisplay (fields , groups , varData , indent  + INDENT ))) ;
23672365 }
23682366
23692367 private  CharSequence  generateGroupDisplay (
@@ -2387,10 +2385,7 @@ private CharSequence generateGroupDisplay(
23872385 appendDisplay (fields , groups , varData , indent  + INDENT ));
23882386 }
23892387
2390-  private  CharSequence  generateCompositeDisplay (
2391-  final  String  name ,
2392-  final  List <Token > tokens ,
2393-  final  String  indent )
2388+  private  CharSequence  generateCompositeDisplay (final  String  name , final  List <Token > tokens , final  String  indent )
23942389 {
23952390 return  String .format ("\n "  +
23962391 indent  + "template<typename CharT, typename Traits>\n "  +
@@ -2407,10 +2402,7 @@ private CharSequence generateCompositeDisplay(
24072402 }
24082403
24092404 private  CharSequence  appendDisplay (
2410-  final  List <Token > fields ,
2411-  final  List <Token > groups ,
2412-  final  List <Token > varData ,
2413-  final  String  indent )
2405+  final  List <Token > fields , final  List <Token > groups , final  List <Token > varData , final  String  indent )
24142406 {
24152407 final  StringBuilder  sb  = new  StringBuilder ();
24162408 final  boolean [] atLeastOne  = {false };
0 commit comments