Binding generator v2 - fix choice 00/61600/1
authorJie Han <han.jie@zte.com.cn>
Thu, 20 Jul 2017 10:44:26 +0000 (18:44 +0800)
committerJie Han <han.jie@zte.com.cn>
Mon, 14 Aug 2017 08:14:59 +0000 (16:14 +0800)
- fix choice's parent type
Change-Id: I436bfb36c396cf95857a7c4c170f1f7601e3c432
Signed-off-by: Jie Han <han.jie@zte.com.cn>
(cherry picked from commit 06c8315eaa9e3468087a99ce2bd1530214aa0e6f)

binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java
binding2/mdsal-binding2-generator-impl/src/test/resources/choice/test-choice-case-choice.yang [new file with mode: 0644]

index abc4611da7e75e496e553b6383fedc80753ece5b..e08d7011bbb415f32e1b9fa4f8c1c8915415396c 100644 (file)
@@ -680,7 +680,7 @@ final class GenHelperUtil {
                 listToGenType(module, basePackageName, typeBuilder, childOf, (ListSchemaNode) node, schemaContext,
                         verboseClassComments, genCtx, genTypeBuilders, typeProvider, namespaceType);
             } else if (node instanceof ChoiceSchemaNode) {
-                choiceToGenType(module, schemaContext, verboseClassComments, basePackageName, childOf,
+                choiceToGenType(module, schemaContext, verboseClassComments, basePackageName, typeBuilder,
                         (ChoiceSchemaNode) node, genTypeBuilders, genCtx, typeProvider, namespaceType);
             } else if (node instanceof AnyXmlSchemaNode || node instanceof AnyDataSchemaNode) {
                 resolveAnyNodeAsMethod(schemaContext, typeBuilder, genCtx, node, module, typeProvider);
diff --git a/binding2/mdsal-binding2-generator-impl/src/test/resources/choice/test-choice-case-choice.yang b/binding2/mdsal-binding2-generator-impl/src/test/resources/choice/test-choice-case-choice.yang
new file mode 100644 (file)
index 0000000..7968e40
--- /dev/null
@@ -0,0 +1,94 @@
+module test-choice-case-choice {
+    yang-version 1.1;
+    namespace "urn:opendaylight:params:xml:ns:yang:test:choice:case:choice";
+    prefix "test-ccc";
+    revision "2017-07-20" {
+    }
+
+    list sub-tlvs {
+        choice range-sub-tlv {
+            case sid-label-tlv-case {
+                choice sid-label-index {
+                    case ipv6-address-case {
+                    }
+                    case local-label-case {
+                    }
+                    case sid-case {
+                    }
+                }
+            }
+            case prefix-sid-tlv-case {
+                choice flags {
+                    case isis-prefix-flags-case {
+                    }
+                    case ospf-prefix-flags-case {
+                    }
+                }
+                choice sid-label-index {
+                    case ipv6-address-case {
+                    }
+                    case local-label-case {
+                    }
+                    case sid-case {
+                    }
+                }
+            }
+            case binding-sid-tlv-case {
+                choice flags {
+                    case ospf-binding-flags-case {
+                    }
+                    case isis-binding-flags-case {
+                    }
+                }
+                list binding-sub-tlvs {
+                    choice binding-sub-tlv {
+                        case ero-metric-case {
+                        }
+                        case ipv6-ero-case {
+                        }
+                        case ipv4-ero-backup-case {
+                        }
+                        case prefix-sid-case {
+                            choice flags {
+                                case isis-prefix-flags-case {
+                                }
+                                case ospf-prefix-flags-case {
+                                }
+                            }
+                            choice sid-label-index {
+                                case ipv6-address-case {
+                                }
+                                case local-label-case {
+                                }
+                                case sid-case {
+                                }
+                            }
+                        }
+                        case sid-label-case {
+                            choice sid-label-index {
+                                case ipv6-address-case {
+                                }
+                                case local-label-case {
+                                }
+                                case sid-case {
+                                }
+                            }
+                        }
+                        case ipv6-prefix-sid-case {
+                        }
+                        case ipv4-ero-case {
+                        }
+                        case unnumbered-interface-id-backup-ero-case {
+                        }
+                        case ipv6-ero-backup-case {
+                        }
+                        case unnumbered-interface-id-ero-case {
+                        }
+                    }
+                }
+            }
+            case ipv6-prefix-sid-tlv-case {
+            }
+        }
+    }
+}
\ No newline at end of file