@@ -2283,9 +2283,7 @@ private CharSequence generateDisplay(
22832283 final List <Token > varData ,
22842284 final String indent )
22852285 {
2286- final StringBuilder sb = new StringBuilder ();
2287-
2288- sb .append (String .format ("\n " +
2286+ return String .format ("\n " +
22892287 indent + "template<typename CharT, typename Traits>\n " +
22902288 indent + "friend std::basic_ostream<CharT, Traits>& operator<<(\n " +
22912289 indent + " std::basic_ostream<CharT, Traits>& builder, %1$s _writer)\n " +
@@ -2302,9 +2300,7 @@ private CharSequence generateDisplay(
23022300 indent + " return builder;\n " +
23032301 indent + "}\n " ,
23042302 formatClassName (name ),
2305- appendDisplay (fields , groups , varData , indent + INDENT )));
2306-
2307- return sb .toString ();
2303+ appendDisplay (fields , groups , varData , indent + INDENT ));
23082304 }
23092305
23102306 private CharSequence generateGroupDisplay (
@@ -2314,8 +2310,7 @@ private CharSequence generateGroupDisplay(
23142310 final List <Token > varData ,
23152311 final String indent )
23162312 {
2317- final StringBuilder sb = new StringBuilder ();
2318- sb .append (String .format ("\n " +
2313+ return String .format ("\n " +
23192314 indent + "template<typename CharT, typename Traits>\n " +
23202315 indent + "friend std::basic_ostream<CharT, Traits>& operator<<(\n " +
23212316 indent + " std::basic_ostream<CharT, Traits>& builder, %1$s writer)\n " +
@@ -2326,19 +2321,15 @@ private CharSequence generateGroupDisplay(
23262321 indent + " return builder;\n " +
23272322 indent + "}\n " ,
23282323 formatClassName (name ),
2329- appendDisplay (fields , groups , varData , indent + INDENT )));
2330-
2331- return sb .toString ();
2324+ appendDisplay (fields , groups , varData , indent + INDENT ));
23322325 }
23332326
23342327 private CharSequence generateCompositeDisplay (
23352328 final String name ,
23362329 final List <Token > tokens ,
23372330 final String indent )
23382331 {
2339- final StringBuilder sb = new StringBuilder ();
2340- final boolean [] atLeastOne = {false };
2341- sb .append (String .format ("\n " +
2332+ return String .format ("\n " +
23422333 indent + "template<typename CharT, typename Traits>\n " +
23432334 indent + "friend std::basic_ostream<CharT, Traits>& operator<<(\n " +
23442335 indent + " std::basic_ostream<CharT, Traits>& builder, %1$s writer)\n " +
@@ -2349,9 +2340,7 @@ private CharSequence generateCompositeDisplay(
23492340 indent + " return builder;\n " +
23502341 indent + "}\n \n " ,
23512342 formatClassName (name ),
2352- appendDisplay (tokens , new ArrayList <>(), new ArrayList <>(), indent + INDENT )));
2353-
2354- return sb .toString ();
2343+ appendDisplay (tokens , new ArrayList <>(), new ArrayList <>(), indent + INDENT ));
23552344 }
23562345
23572346 private CharSequence appendDisplay (
@@ -2362,6 +2351,7 @@ private CharSequence appendDisplay(
23622351 {
23632352 final StringBuilder sb = new StringBuilder ();
23642353 final boolean [] atLeastOne = {false };
2354+
23652355 for (int i = 0 , size = fields .size (); i < size ;)
23662356 {
23672357 final Token fieldToken = fields .get (i );
@@ -2394,8 +2384,6 @@ private CharSequence appendDisplay(
23942384 throw new IllegalStateException ("tokens must begin with BEGIN_GROUP: token=" + groupToken );
23952385 }
23962386
2397- sb .append (indent + "//" + groupToken + "\n " );
2398-
23992387 if (atLeastOne [0 ])
24002388 {
24012389 sb .append (
@@ -2410,7 +2398,9 @@ private CharSequence appendDisplay(
24102398 indent + " writer.%2$s().forEach([&](%1$s& %2$s)\n " +
24112399 indent + " {\n " +
24122400 indent + " if (atLeastOne)\n " +
2401+ indent + " {\n " +
24132402 indent + " builder << \" , \" ;\n " +
2403+ indent + " }\n " +
24142404 indent + " atLeastOne = true;\n " +
24152405 indent + " builder << %2$s;\n " +
24162406 indent + " });\n " +
@@ -2420,7 +2410,6 @@ private CharSequence appendDisplay(
24202410 formatPropertyName (groupToken .name ()),
24212411 groupToken .name ()));
24222412
2423-
24242413 i = findEndSignal (groups , i , Signal .END_GROUP , groupToken .name ());
24252414 }
24262415
@@ -2432,8 +2421,6 @@ private CharSequence appendDisplay(
24322421 throw new IllegalStateException ("tokens must begin with BEGIN_VAR_DATA: token=" + varDataToken );
24332422 }
24342423
2435- sb .append (indent + "//" + varDataToken + "\n " );
2436-
24372424 if (atLeastOne [0 ])
24382425 {
24392426 sb .append (
@@ -2444,15 +2431,12 @@ private CharSequence appendDisplay(
24442431 final String characterEncoding = varData .get (i + 3 ).encoding ().characterEncoding ();
24452432 final String getAsStringFunction = "get" + toUpperFirstChar (varDataToken .name ()) + "AsString().c_str()" ;
24462433 sb .append (indent + "builder << R\" (\" " + varDataToken .name () + "\" : )\" ;\n " );
2434+
24472435 if (null == characterEncoding )
24482436 {
24492437 sb .append (
24502438 indent + "builder << '\" ' <<\n " +
24512439 indent + INDENT + "writer." + getAsStringFunction + " << '\" ';\n \n " );
2452- /*sb.append(indent + "builder << " + varDataName + "Length() << \" bytes of raw data\";\n");
2453- append(sb, indent,
2454- "parentMessage.limit(parentMessage.limit() + " + varDataName + "HeaderLength() + " +
2455- varDataName + "Length());");*/
24562440 }
24572441 else
24582442 {
@@ -2463,7 +2447,7 @@ private CharSequence appendDisplay(
24632447
24642448 i += varDataToken .componentTokenCount ();
24652449 }
2466- return sb . toString () ;
2450+ return sb ;
24672451 }
24682452
24692453 private CharSequence writeTokenDisplay (
@@ -2475,8 +2459,6 @@ private CharSequence writeTokenDisplay(
24752459 final StringBuilder sb = new StringBuilder ();
24762460 final String fieldName = "writer." + formatPropertyName (fieldTokenName );
24772461
2478- sb .append (indent + "//" + typeToken + "\n " );
2479-
24802462 if (typeToken .encodedLength () <= 0 || typeToken .isConstantEncoding ())
24812463 {
24822464 return sb .toString ();
@@ -2520,7 +2502,9 @@ private CharSequence writeTokenDisplay(
25202502 indent + " for (size_t i = 0; i < " + fieldName + "Length(); i++)\n " +
25212503 indent + " {\n " +
25222504 indent + " if (i)\n " +
2505+ indent + " {\n " +
25232506 indent + " builder << ',';\n " +
2507+ indent + " }\n " +
25242508 indent + " builder << +" + fieldName + "(i);\n " +
25252509 indent + " }\n " +
25262510 indent + "}\n " +
@@ -2533,9 +2517,12 @@ private CharSequence writeTokenDisplay(
25332517 if (typeToken .encoding ().primitiveType () == PrimitiveType .CHAR )
25342518 {
25352519 sb .append (
2536- indent + "if (std::isprint(" + fieldName + "())) {\n " +
2520+ indent + "if (std::isprint(" + fieldName + "()))\n " +
2521+ indent + "{\n " +
25372522 indent + " builder << '\" ' << (char)" + fieldName + "() << '\" ';\n " +
2538- indent + "} else {\n " +
2523+ indent + "}\n " +
2524+ indent + "else\n " +
2525+ indent + "{\n " +
25392526 indent + " builder << (int)" + fieldName + "();\n " +
25402527 indent + "}\n " );
25412528 }
@@ -2549,15 +2536,17 @@ private CharSequence writeTokenDisplay(
25492536 case BEGIN_ENUM :
25502537 sb .append (indent + "builder << '\" ' << " + fieldName + "() << '\" ';\n " );
25512538 break ;
2539+
25522540 case BEGIN_SET :
25532541 sb .append (indent + "builder << " + fieldName + "();\n " );
25542542 break ;
2543+
25552544 case BEGIN_COMPOSITE :
25562545 sb .append (indent + "builder << " + fieldName + "();\n " );
25572546 break ;
25582547 }
25592548
2560- return sb . toString () ;
2549+ return sb ;
25612550 }
25622551
25632552 private CharSequence generateChoicesDisplay (final String name , final List <Token > tokens )
@@ -2584,8 +2573,8 @@ private CharSequence generateChoicesDisplay(final String name, final List<Token>
25842573 for (int i = 0 , size = choiceTokens .size (); i < size ; i ++)
25852574 {
25862575 final Token token = choiceTokens .get (i );
2587- sb .append (indent + " //" + token + "\n " );
25882576 final String choiceName = "writer." + formatPropertyName (token .name ());
2577+
25892578 sb .append (
25902579 indent + " if (" + choiceName + "())\n " +
25912580 indent + " {\n " );
@@ -2612,7 +2601,7 @@ private CharSequence generateChoicesDisplay(final String name, final List<Token>
26122601 indent + " return builder;\n " +
26132602 indent + "}\n " );
26142603
2615- return sb . toString () ;
2604+ return sb ;
26162605 }
26172606
26182607 private CharSequence generateEnumDisplay (final List <Token > tokens , final Token encodingToken )
@@ -2625,15 +2614,13 @@ private CharSequence generateEnumDisplay(final List<Token> tokens, final Token e
26252614 " {\n " +
26262615 " switch (value)\n " +
26272616 " {\n " ,
2628- enumName
2629- ));
2617+ enumName ));
26302618
26312619 for (final Token token : tokens )
26322620 {
26332621 sb .append (String .format (
26342622 " case %1$s: return \" %1$s\" ;\n " ,
2635- token .name ())
2636- );
2623+ token .name ()));
26372624 }
26382625
26392626 sb .append (String .format (
@@ -2648,8 +2635,7 @@ private CharSequence generateEnumDisplay(final List<Token> tokens, final Token e
26482635 " {\n " +
26492636 " return os << %1$s::c_str(m);\n " +
26502637 " }\n " ,
2651- enumName
2652- ));
2638+ enumName ));
26532639
26542640 return sb ;
26552641 }
0 commit comments