Binding generator v2 - uses statement - uses leafref #2
[mdsal.git] / binding2 / mdsal-binding2-generator-impl / src / main / java / org / opendaylight / mdsal / binding / javav2 / generator / yang / types / TypeProviderImpl.java
index cde0bb71bfe216157a242f24711840191a0c3031..19617de46b199b3c562e54d6b08c2618ba2604ba 100644 (file)
@@ -642,11 +642,14 @@ public final class TypeProviderImpl implements TypeProvider {
         if (strXPath != null) {
             if (strXPath.indexOf('[') == -1) {
                 final Module module;
+                final SchemaNode actualParentSchemaNode;
                 if ((parentNode instanceof DerivableSchemaNode) && ((DerivableSchemaNode) parentNode).isAddedByUses()) {
                     final Optional<? extends SchemaNode> originalNode = ((DerivableSchemaNode) parentNode).getOriginal();
                     Preconditions.checkArgument(originalNode.isPresent(), "originalNode can not be null.");
+                    actualParentSchemaNode = originalNode.get();
                     module = findParentModule(schemaContext, originalNode.get());
                 } else {
+                    actualParentSchemaNode = parentNode;
                     module = findParentModule(schemaContext, parentNode);
                 }
                 Preconditions.checkArgument(module != null, "Failed to find module for parent %s", parentNode);
@@ -655,7 +658,7 @@ public final class TypeProviderImpl implements TypeProvider {
                 if (xpath.isAbsolute()) {
                     dataNode = findDataSchemaNode(schemaContext, module, xpath);
                 } else {
-                    dataNode = findDataSchemaNodeForRelativeXPath(schemaContext, module, parentNode, xpath);
+                    dataNode = findDataSchemaNodeForRelativeXPath(schemaContext, module, actualParentSchemaNode, xpath);
                 }
                 Preconditions.checkArgument(dataNode != null, "Failed to find leafref target: %s in module %s (%s)",
                         strXPath, getParentModule(parentNode, schemaContext).getName(), parentNode.getQName().getModule());