Filter empty augmentations from DataObject.toString() 67/97667/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Sep 2021 14:12:48 +0000 (16:12 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Sep 2021 14:18:26 +0000 (16:18 +0200)
Empty augmentations are a hallmark of every toString() result we see.
They carry no semantic meaning, so let's filter them to make life easier
for everyone.

JIRA: MDSAL-691
Change-Id: I79dc07fa72c6c952e797ebb96784788e0dd30241
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/InterfaceTemplate.xtend
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderGeneratorTest.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java

index 40505ba0af6e226f0f0357e501a1a60d5e845581..667f78055efa8c5609247c712272ee2b8f8bd304 100644 (file)
@@ -350,7 +350,7 @@ class InterfaceTemplate extends BaseTemplate {
                 «CODEHELPERS.importedName».appendValue(helper, "«property.name»", obj.«property.getterName»());
             «ENDFOR»
             «IF augmentable»
-                «CODEHELPERS.importedName».appendValue(helper, "«AUGMENTATION_FIELD»", obj.augmentations().values());
+                «CODEHELPERS.importedName».appendAugmentations(helper, "«AUGMENTATION_FIELD»", obj);
             «ENDIF»
             return helper.toString();
         }
index 932b45940758d3088056991e62f96532e2dd0a07..67aa9a73e9fe6ed7e973d5ff488107075edd7246 100644 (file)
@@ -222,7 +222,7 @@ public class BuilderGeneratorTest {
                 + " */\n"
                 + "static String bindingToString(final test.@NonNull test obj) {\n"
                 + "    final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(\"test\");\n"
-                + "    CodeHelpers.appendValue(helper, \"augmentation\", obj.augmentations().values());\n"
+                + "    CodeHelpers.appendAugmentations(helper, \"augmentation\", obj);\n"
                 + "    return helper.toString();\n"
                 + "}\n", genToString(mockAugment(mockGenType(TEST))).toString());
     }
@@ -241,7 +241,7 @@ public class BuilderGeneratorTest {
                 + "static String bindingToString(final test.@NonNull test obj) {\n"
                 + "    final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(\"test\");\n"
                 + "    CodeHelpers.appendValue(helper, \"test\", obj.gettest());\n"
-                + "    CodeHelpers.appendValue(helper, \"augmentation\", obj.augmentations().values());\n"
+                + "    CodeHelpers.appendAugmentations(helper, \"augmentation\", obj);\n"
                 + "    return helper.toString();\n"
                 + "}\n", genToString(mockAugment(mockGenType("get" + TEST))).toString());
     }
@@ -261,7 +261,7 @@ public class BuilderGeneratorTest {
                 + "    final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(\"test\");\n"
                 + "    CodeHelpers.appendValue(helper, \"test1\", obj.gettest1());\n"
                 + "    CodeHelpers.appendValue(helper, \"test2\", obj.gettest2());\n"
-                + "    CodeHelpers.appendValue(helper, \"augmentation\", obj.augmentations().values());\n"
+                + "    CodeHelpers.appendAugmentations(helper, \"augmentation\", obj);\n"
                 + "    return helper.toString();\n"
                 + "}\n", genToString(mockAugment(mockGenTypeMoreMeth("get" + TEST))).toString());
     }
index 8de4954d319ea292de6f87177f04bc64533afedf..9f24fe2c45ac719f88d648e007fcf307ddd6fc8c 100644 (file)
@@ -119,6 +119,23 @@ public final class CodeHelpers {
         }
     }
 
+    /**
+     * Append augmentation map of an Augmentable to a ToStringHelper. If augmentations are null or empt, this method
+     * does nothing.
+     *
+     * @param helper Helper to append to
+     * @param name Name of the augmentation value
+     * @param augmentable Augmentable object to
+     * @throws NullPointerException if any argument is null
+     */
+    public static void appendAugmentations(final ToStringHelper helper, final String name,
+            final Augmentable<?> augmentable) {
+        final var augments = augmentable.augmentations();
+        if (!augments.isEmpty()) {
+            helper.add(name, augments.values());
+        }
+    }
+
     /**
      * Compile a list of pattern regular expressions and return them as an array. The list must hold at least two
      * expressions.