Fix generate of comma before augmentations in toString generator 73/51773/1
authorJakub Toth <jatoth@cisco.com>
Fri, 10 Feb 2017 10:04:32 +0000 (11:04 +0100)
committerJakub Toth <jatoth@cisco.com>
Mon, 13 Feb 2017 09:15:44 +0000 (09:15 +0000)
Change-Id: Ibb4c19028b758c27126cc244a8657efbd46bc1b2
Signed-off-by: Jakub Toth <jatoth@cisco.com>
(cherry picked from commit 4920e768c2d376661eace4206df4f6fc95115162)

binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderGeneratorTest.java

index a57e10aba874f2e6d7a596fadf27bfeda0d01c8d..1d1b39257587c52d993e2206f5d2c0ef8d0ce5c7 100644 (file)
@@ -710,7 +710,8 @@ class BuilderTemplate extends BaseTemplate {
         «IF !(properties === null)»
             @Override
             public «String.importedName» toString() {
-                «StringBuilder.importedName» builder = new «StringBuilder.importedName» ("«type.name» [");
+                «String.importedName» name = "«type.name» [";
+                «StringBuilder.importedName» builder = new «StringBuilder.importedName» (name);
                 «FOR property : properties SEPARATOR "\n    builder.append(\", \");\n}" AFTER "    }\n"»
                     if («property.fieldName» != null) {
                         builder.append("«property.fieldName»=");
@@ -723,8 +724,9 @@ class BuilderTemplate extends BaseTemplate {
                 «IF augmentField != null»
                     «IF !properties.empty»
                 «««Append comma separator only if it's not there already from previous operation»»»
-int builderLength = builder.length();
-                    if (builderLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(", ")) {
+final int builderLength = builder.length();
+                    final int builderAdditionalLength = builder.substring(name.length(), builderLength).length();
+                    if (builderAdditionalLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(", ")) {
                         builder.append(", ");
                     }
                     «ENDIF»
index 7385e7fec0231c3dbef5c4d59aac462a41044ce3..4f56de880c35d6a67b035fd2c53019a413110c10 100644 (file)
@@ -28,14 +28,15 @@ public class BuilderGeneratorTest {
 
     private static final String PROPERTIES_FIELD_NAME = "properties";
     private static final String GEN_TO_STRING_FIRST_PART =
-            "@Override\npublic java.lang.String toString() {\n    java.lang.StringBuilder builder = new java.lang.StringBuilder ("
-                    + "\"test [\");";
+            "@Override\npublic java.lang.String toString() {\n    java.lang.String name = \"test [\";\n    "
+                    + "java.lang.StringBuilder builder = new java.lang.StringBuilder (name);";
     private static final String GEN_TO_STRING_LAST_PART = "\n    return builder.append(']').toString();\n}\n";
     private static final String GEN_TO_STRING_AUGMENT_PART =
             "\n    builder.append(\"augmentation=\");\n    builder.append(augmentation.values());";
     private static final String APPEND_COMMA = "builder.append(\", \");";
-    private static final String APPEND_COMMA_AUGMENT = "int builderLength = builder.length();\n"
-            + "    if (builderLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(\", \")) {\n"
+    private static final String APPEND_COMMA_AUGMENT = "final int builderLength = builder.length();\n"
+            + "    final int builderAdditionalLength = builder.substring(name.length(), builderLength).length();\n"
+            + "    if (builderAdditionalLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(\", \")) {\n"
             + "        " + APPEND_COMMA + "\n" + "    }";
     private static final String TEST = "test";