code: private static void bodyWithConcatenation(
        SourceBuilder code,
        Map<Property, PropertyCodeGenerator> generatorsByProperty,
        String typename) {
      code.add("  return \"%s{", typename);
      String prefix = "";
      for (Property property : generatorsByProperty.keySet()) {
        PropertyCodeGenerator generator = generatorsByProperty.get(property);
        code.add("%s%s=\" + %s + \"",
            prefix, property.getName(), (Excerpt) generator::addToStringValue);
        prefix = ", ";
      }
      code.add("}\";%n");
    }
docs: Generate the body of a toString method that uses plain concatenation.
  
  <p>Conventionally, we join properties with comma separators. If all of the properties are
  always present, this can be done with a long block of unconditional code. We could use a
  StringBuilder for this, but in fact the Java compiler will do this for us under the hood
  if we use simple string concatenation, so we use the more readable approach.