Binding generator v2 - Bits - getDefaultInstance() fix 72/59072/2
authorJie Han <han.jie@zte.com.cn>
Fri, 16 Jun 2017 04:00:25 +0000 (12:00 +0800)
committerMartin Ciglan <martin.ciglan@pantheon.tech>
Fri, 16 Jun 2017 11:35:01 +0000 (11:35 +0000)
- add testing yang
Change-Id: I8e35707f65b3c1800545e36b48abbc97b3c212e5
Signed-off-by: Jie Han <han.jie@zte.com.cn>
(cherry picked from commit bf32fff2e6859fda878fa6f0b6b172b3e6a9baf7)

binding2/mdsal-binding2-java-api-generator/src/main/twirl/org/opendaylight/mdsal/binding/javav2/java/api/generator/classTemplate.scala.txt
binding2/mdsal-binding2-java-api-generator/src/test/resources/test-bits.yang [new file with mode: 0644]

index 4d7d46026c80ec6a73c9479d174a1bfa1f002cd4..9f47a99916ad91e9b54ed683bc33a38f592a0a5c 100644 (file)
@@ -150,44 +150,53 @@ class @{genType.getName}
 @if(genTo.isTypedef && !allProperties.isEmpty && !genTo.isUnionType) {
     @if(!"org.opendaylight.yangtools.yang.binding.InstanceIdentifier".equals(allProperties.get(0).getReturnType.getFullyQualifiedName)) {
         public static @{genTo.getName} getDefaultInstance(String defaultValue) {
-            @if("byte[]".equals(allProperties.get(0).getReturnType.getName)) {
-                @{importedNames.get("baseEncoding")} baseEncoding = @{importedNames.get("baseEncoding")}.base64();
-                return new @{genTo.getName}(baseEncoding.decode(defaultValue));
-            } else {
-                @allProperties.get(0).getReturnType.getFullyQualifiedName match {
-                case "java.lang.String" => {
-                    return new @{genTo.getName}(defaultValue);
-                }
-                case "java.lang.Boolean" => {
-                    return new @{genTo.getName}(@{importedNames.get("boolean")}.valueOf(defaultValue));
-                }
-                case "java.lang.Byte" => {
-                    return new @{genTo.getName}(@{importedNames.get("byte")}.valueOf(defaultValue));
-                }
-                case "java.lang.Short" => {
-                    return new @{genTo.getName}(@{importedNames.get("short")}.valueOf(defaultValue));
-                }
-                case "java.lang.Integer" => {
-                    return new @{genTo.getName}(@{importedNames.get("integer")}.valueOf(defaultValue));
+            @if(allProperties.size > 1) {
+                @{importedNames.get("list")}<@{importedNames.get("string")}> properties = @{importedNames.get("lists")}.newArrayList(@{propsAsArgs(allProperties)});
+                if (!properties.contains(defaultValue)) {
+                    throw new @{importedNames.get("illegalArgumentException")}("invalid default parameter");
                 }
-                case "java.lang.Long" => {
-                    return new @{genTo.getName}(@{importedNames.get("long")}.valueOf(defaultValue));
-                }
-                case _ => {
-                    @if(allProperties.size > 1) {
-                        @{importedNames.get("list")}<@{importedNames.get("string")}> properties = @{importedNames.get("lists")}.newArrayList(@{propsAsArgs(allProperties)});
-                        if (!properties.contains(defaultValue)) {
-                            throw new @{importedNames.get("illegalArgumentException")}("invalid default parameter");
-                        }
-                        int i = 0;
-                        return new @{genTo.getName}(propsAsList(allProperties, importedNames.get("boolean")));
-                    } else {
-                        return new @{genTo.getName}(@{importedNames.get("defProp")}.valueOf(defaultValue));
+                int i = 0;
+                return new @{genTo.getName}(@propsAsList(allProperties, importedNames.get("boolean")));
+            } else {
+                @if("byte[]".equals(allProperties.get(0).getReturnType.getName)) {
+                    @{importedNames.get("baseEncoding")} baseEncoding = @{importedNames.get("baseEncoding")}.base64();
+                    return new @{genTo.getName}(baseEncoding.decode(defaultValue));
+                } else {
+                    @allProperties.get(0).getReturnType.getFullyQualifiedName match {
+                    case "java.lang.String" => {
+                        return new @{genTo.getName}(defaultValue);
+                    }
+                    case "java.lang.Boolean" => {
+                        return new @{genTo.getName}(@{importedNames.get("boolean")}.valueOf(defaultValue));
+                    }
+                    case "java.lang.Byte" => {
+                        return new @{genTo.getName}(@{importedNames.get("byte")}.valueOf(defaultValue));
+                    }
+                    case "java.lang.Short" => {
+                        return new @{genTo.getName}(@{importedNames.get("short")}.valueOf(defaultValue));
+                    }
+                    case "java.lang.Integer" => {
+                        return new @{genTo.getName}(@{importedNames.get("integer")}.valueOf(defaultValue));
+                    }
+                    case "java.lang.Long" => {
+                        return new @{genTo.getName}(@{importedNames.get("long")}.valueOf(defaultValue));
+                    }
+                    case _ => {
+                        @if(allProperties.size > 1) {
+                            @{importedNames.get("list")}<@{importedNames.get("string")}> properties = @{importedNames.get("lists")}.newArrayList(@{propsAsArgs(allProperties)});
+                            if (!properties.contains(defaultValue)) {
+                                throw new @{importedNames.get("illegalArgumentException")}("invalid default parameter");
+                            }
+                            int i = 0;
+                                    return new @{genTo.getName}(propsAsList(allProperties, importedNames.get("boolean")));
+                                } else {
+                                    return new @{genTo.getName}(@{importedNames.get("defProp")}.valueOf(defaultValue));
+                                }
+                    }
                     }
-                }
                 }
             }
         }
-        }
     }
+}
 }
\ No newline at end of file
diff --git a/binding2/mdsal-binding2-java-api-generator/src/test/resources/test-bits.yang b/binding2/mdsal-binding2-java-api-generator/src/test/resources/test-bits.yang
new file mode 100644 (file)
index 0000000..5d6af1e
--- /dev/null
@@ -0,0 +1,15 @@
+module test-bits{
+    namespace "urn:test:bits";
+    prefix bits;
+    revision 2017-01-01;
+
+    typedef my-bits {
+        type bits {
+            bit ctrl;
+            bit alt {
+                position 5;
+            }
+            bit delete;
+        }
+    }
+}
\ No newline at end of file