Tolerate unresolvable leafrefs in groupings 73/81073/1
authorVratko Polak <vrpolak@cisco.com>
Fri, 1 Jul 2016 11:21:15 +0000 (13:21 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 21 Mar 2019 10:59:44 +0000 (11:59 +0100)
commit357dc6e22037e4f95a6ddb49257a9ac4ae06a6ec
tree9fd56d30caf3038c1874cec14692f5eba0ad4b87
parent44cf7b1f636009a7108fc9903833685f12a67e1b
Tolerate unresolvable leafrefs in groupings

In case a grouping contains a relative leafref pointing outside of
the grouping subtree we cannot safely determine the target type, which
lead to an IllegalArgumentException.

In this case we need to resolve the return type to an Object, which
loses type safety, but really is the best we can do as we just do not
know in what contexts that grouping is used.

Unfortunately this requires API changes to mdsal-binding-generator-api
as we need to communicate the fact we are resolving a type definition
in the context of a grouping to TypeProvider implementations.

JIRA: MDSAL-182
Change-Id: Iaf96d133c08eb47f4bb27b6c4f3db1463b78f05e
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 1e1d8a29875fe39cc41cc430d6d96ccebd5eb5f0)
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/generator/spi/TypeProvider.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/BaseYangTypes.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal182Test.java [new file with mode: 0644]
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java
binding/mdsal-binding-generator-impl/src/test/resources/mdsal-182/good-leafref.yang [new file with mode: 0644]
binding/mdsal-binding-generator-impl/src/test/resources/mdsal-182/grouping-leafref.yang [new file with mode: 0644]
binding/mdsal-binding-test-model/src/main/yang/mdsal-182.yang [new file with mode: 0644]