private CodeBlock forEachMapEntryMethodBody(
        TypeMirror keyType, TypeMirror valueType, String propertyAccess) {
      CodeBlock entryType = CodeBlock.of("$T<$T, $T>", Map.Entry.class, keyType, valueType);
      return loopMethodBody(
          "{",
          "}",
          CodeBlock.of("for ($L entry : $L.entrySet())", entryType, propertyAccess),
          format(CodeBlock.of("entry.getKey()"), CodeBlock.of("indentLevel + 1"), keyType),
          KEY_VALUE_SEPARATOR,
          format(CodeBlock.of("entry.getValue()"), CodeBlock.of("indentLevel + 1"), valueType));
    }
Parameter object to simplify the branches of {@link #format(CodeBlock, CodeBlock,
TypeMirror)} that call a delegate method.
value/src/main/java/com/google/auto/value/extension/toprettystring/processor/ToPrettyStringExtension.java