From 0819d4e1d990d844a7b1e09f0adcf220bcc43676 Mon Sep 17 00:00:00 2001 From: Jakub Toth Date: Fri, 10 Feb 2017 11:04:32 +0100 Subject: [PATCH] Fix generate of comma before augmentations in toString generator Change-Id: Ibb4c19028b758c27126cc244a8657efbd46bc1b2 Signed-off-by: Jakub Toth (cherry picked from commit 4920e768c2d376661eace4206df4f6fc95115162) --- .../sal/java/api/generator/BuilderTemplate.xtend | 8 +++++--- .../sal/java/api/generator/BuilderGeneratorTest.java | 9 +++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend index a57e10aba8..1d1b392575 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend @@ -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» diff --git a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderGeneratorTest.java b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderGeneratorTest.java index 7385e7fec0..4f56de880c 100644 --- a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderGeneratorTest.java +++ b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderGeneratorTest.java @@ -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"; -- 2.36.6