@@ -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