Make sure builder-generated object do not emit null values 80/5080/3
authorRobert Varga <rovarga@cisco.com>
Fri, 31 Jan 2014 13:38:53 +0000 (14:38 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 4 Feb 2014 17:51:58 +0000 (17:51 +0000)
Change-Id: Ifff51ab174ca03df129943c67155082c363554b8
Signed-off-by: Robert Varga <rovarga@cisco.com>
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend

index 20950f10b8f2561ef29d5ae9af9aa50c58a88a75..d2684df9e29b84ea3f17103165c5c15c55d1965d 100644 (file)
@@ -263,18 +263,18 @@ abstract class BaseTemplate {
                 StringBuilder builder = new StringBuilder("«type.name» [");
                 boolean first = true;
 
-                «FOR i : 0..<properties.size»
-                    if («properties.get(i).fieldName» != null) {
+                «FOR property : properties»
+                    if («property.fieldName» != null) {
                         if (first) {
                             first = false;
                         } else {
                             builder.append(", ");
                         }
-                        builder.append("«properties.get(i).fieldName»=");
-                        «IF properties.get(i).returnType.name.contains("[")»
-                            builder.append(«Arrays.importedName».toString(«properties.get(i).fieldName»));
+                        builder.append("«property.fieldName»=");
+                        «IF property.returnType.name.contains("[")»
+                            builder.append(«Arrays.importedName».toString(«property.fieldName»));
                         «ELSE»
-                            builder.append(«properties.get(i).fieldName»);
+                            builder.append(«property.fieldName»);
                         «ENDIF»
                      }
                 «ENDFOR»
index 274306063c3201d29fc7bd8711ed58150f546262..b4940a97c385207bbaf515c408a6cc619b86996f 100644 (file)
@@ -605,27 +605,34 @@ class BuilderTemplate extends BaseTemplate {
         «IF !properties.empty»
             @Override
             public String toString() {
-                StringBuilder builder = new StringBuilder();
-                builder.append("«type.name» [«properties.get(0).fieldName»=");
-                «IF properties.get(0).returnType.name.contains("[")»
-                    builder.append(«Arrays.importedName».toString(«properties.get(0).fieldName»));
-                «ELSE»
-                    builder.append(«properties.get(0).fieldName»);
-                «ENDIF»
-                «FOR i : 1..<properties.size»
-                    builder.append(", «properties.get(i).fieldName»=");
-                    «IF properties.get(i).returnType.name.contains("[")»
-                        builder.append(«Arrays.importedName».toString(«properties.get(i).fieldName»));
-                    «ELSE»
-                        builder.append(«properties.get(i).fieldName»);
-                    «ENDIF»
+                StringBuilder builder = new StringBuilder("«type.name» [");
+                boolean first = true;
+
+                «FOR property : properties»
+                    if («property.fieldName» != null) {
+                        if (first) {
+                            first = false;
+                        } else {
+                            builder.append(", ");
+                        }
+                        builder.append("«property.fieldName»=");
+                        «IF property.returnType.name.contains("[")»
+                            builder.append(«Arrays.importedName».toString(«property.fieldName»));
+                        «ELSE»
+                            builder.append(«property.fieldName»);
+                        «ENDIF»
+                     }
                 «ENDFOR»
                 «IF augmentField != null»
-                    builder.append(", «augmentField.name»=");
+                    if (first) {
+                        first = false;
+                    } else {
+                        builder.append(", ");
+                    }
+                    builder.append("«augmentField.name»=");
                     builder.append(«augmentField.name».values());
                 «ENDIF»
-                builder.append("]");
-                return builder.toString();
+                return builder.append(']').toString();
             }
         «ENDIF»
     '''