X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=binding2%2Fmdsal-binding2-generator-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fjavav2%2Fgenerator%2Fyang%2Ftypes%2FTypeProviderImpl.java;h=7faea06392eb1bff0615126a48c687a9afed2fdb;hb=e214685f68411ff9a254bf936337a9312c2f2276;hp=bc4f30078ce6e4d43c7e69f645ec465ad73c8183;hpb=67b940dfbd66ab7e7ed10e98fe8f732409dced74;p=mdsal.git diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/yang/types/TypeProviderImpl.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/yang/types/TypeProviderImpl.java index bc4f30078c..7faea06392 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/yang/types/TypeProviderImpl.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/yang/types/TypeProviderImpl.java @@ -26,6 +26,7 @@ import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findD import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNodeForRelativeXPath; import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findParentModule; +import com.google.common.base.Optional; import com.google.common.annotations.Beta; import com.google.common.base.Preconditions; import com.google.common.base.Strings; @@ -64,6 +65,7 @@ import org.opendaylight.mdsal.binding.javav2.util.BindingMapping; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; @@ -637,10 +639,16 @@ public final class TypeProviderImpl implements TypeProvider { final RevisionAwareXPath xpath = leafrefType.getPathStatement(); final String strXPath = xpath.toString(); - if (strXPath != null) { if (strXPath.indexOf('[') == -1) { - final Module module = findParentModule(schemaContext, parentNode); + final Module module; + if ((parentNode instanceof DerivableSchemaNode) && ((DerivableSchemaNode) parentNode).isAddedByUses()) { + final Optional originalNode = ((DerivableSchemaNode) parentNode).getOriginal(); + Preconditions.checkArgument(originalNode.isPresent(), "originalNode can not be null."); + module = findParentModule(schemaContext, originalNode.get()); + } else { + module = findParentModule(schemaContext, parentNode); + } Preconditions.checkArgument(module != null, "Failed to find module for parent %s", parentNode); final SchemaNode dataNode;