Binding generator v2 - augment statement #3 70/60470/2
authorJie Han <han.jie@zte.com.cn>
Mon, 10 Jul 2017 07:16:47 +0000 (15:16 +0800)
committerMartin Ciglan <martin.ciglan@pantheon.tech>
Mon, 17 Jul 2017 11:24:34 +0000 (11:24 +0000)
- support uses implements of augmentation

Change-Id: Ic62bf99d841ec95c81bd9408acd027f41b0bc00e
Signed-off-by: Jie Han <han.jie@zte.com.cn>
(cherry picked from commit 1a500171a83bb142b59c26597e7581832fb98554)

binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/GenHelperUtil.java

index e340c3360cc23b02672c0360623aabf7aa959946..d10b724bbeae6ed483bbd38a49d2a3b87812e9c0 100644 (file)
@@ -270,13 +270,15 @@ final class GenHelperUtil {
                 verboseClassComments, genTypeBuilders, typeProvider , namespaceType);
     }
 
-    private static QName createQNameFromSuperNode(final Object node, final SchemaNode superChildNode) {
+    private static QName createQNameFromSuperNode(final Module module, final Object node, final SchemaNode superChildNode) {
         QName childNodeQName = null;
         if (node instanceof Module) {
             childNodeQName = QName.create(((Module)node).getNamespace(), ((Module)node).getRevision(),
                     superChildNode.getQName().getLocalName());
         } else if (node instanceof SchemaNode) {
             childNodeQName = QName.create(((SchemaNode)node).getQName(), superChildNode.getQName().getLocalName());
+        } else if (node instanceof AugmentationSchema) {
+            childNodeQName = QName.create(module.getNamespace(), module.getRevision(), superChildNode.getQName().getLocalName());
         } else {
             throw new IllegalArgumentException("Not support node type:" + node.toString());
         }
@@ -291,7 +293,7 @@ final class GenHelperUtil {
         if (superNode instanceof DataNodeContainer) {
             for (DataSchemaNode superChildNode : ((DataNodeContainer)superNode).getChildNodes()) {
                 if (superChildNode instanceof DataNodeContainer || superChildNode instanceof ChoiceSchemaNode) {
-                    final QName childQName = createQNameFromSuperNode(node, superChildNode);
+                    final QName childQName = createQNameFromSuperNode(module, node, superChildNode);
                     DataSchemaNode childNode = ((DataNodeContainer)node).getDataChildByName(childQName);
                     Preconditions.checkNotNull(childNode, node.toString() + "->" + childQName.toString());
 
@@ -320,7 +322,7 @@ final class GenHelperUtil {
             }
         } else if (superNode instanceof ChoiceSchemaNode) {
             for (ChoiceCaseNode superCaseNode : ((ChoiceSchemaNode)superNode).getCases()) {
-                final QName childQName = createQNameFromSuperNode(node, superCaseNode);
+                final QName childQName = createQNameFromSuperNode(module, node, superCaseNode);
                 ChoiceCaseNode caseNode = ((ChoiceSchemaNode)node).getCaseNodeByName(childQName);
                 Preconditions.checkNotNull(caseNode, node.toString() + "->" + childQName.toString());