From: Robert Varga Date: Thu, 10 Feb 2022 10:38:25 +0000 (+0100) Subject: Correct ActionSpec definition X-Git-Tag: v8.0.11~3 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=b41670e9818c88235d38bde8f4942eec08e07d3e;ds=sidebyside Correct ActionSpec definition ActionSpec's generics fail to account for KeyedListActions. Fix that by making sure allow for KeyedInstanceIdentifiers as well as InstanceIdentifiers. JIRA: MDSAL-721 Change-Id: I520e23e0294c38c37c6a15dd4d7f05c937476357 Signed-off-by: Robert Varga (cherry picked from commit 7c8af4914727a5343d0dfa2034e1f1c818ce6e35) --- diff --git a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/ActionSpec.java b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/ActionSpec.java index a42c072591..554fa5f4a8 100644 --- a/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/ActionSpec.java +++ b/binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/ActionSpec.java @@ -38,7 +38,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdenti * @param

Action parent type */ @Beta -public final class ActionSpec, ?, ?>, P extends DataObject> +public final class ActionSpec, ?, ?>, P extends DataObject> implements Immutable { private final @NonNull InstanceIdentifier

path; private final @NonNull Class type; @@ -112,7 +112,8 @@ public final class ActionSpec, ?, ?>, P e return castThis(); } - public , ?, ?>> @NonNull ActionSpec build(final Class type) { + public , ?, ?>> @NonNull ActionSpec build( + final Class type) { return new ActionSpec<>(type, pathBuilder.build()); } diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/ActionLookupTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/ActionLookupTest.java index 223995f256..97840294c6 100644 --- a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/ActionLookupTest.java +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/ActionLookupTest.java @@ -15,10 +15,13 @@ import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext; import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Cont; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Grpcont; +import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Grplst; +import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Lstio; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Nestedcont; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.Othercont; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.cont.Foo; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.grpcont.Bar; +import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.lstio.Fooio; import org.opendaylight.yang.gen.v1.urn.odl.actions.norev.nested.Baz; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; @@ -38,5 +41,10 @@ public class ActionLookupTest { assertEquals(Absolute.of(Nestedcont.QNAME, Baz.QNAME, Bar.QNAME), codec.getActionPath( ActionSpec.builder(Nestedcont.class).withPathChild(Baz.class).build( org.opendaylight.yang.gen.v1.urn.odl.actions.norev.nested.baz.Bar.class))); + assertEquals(Absolute.of(Lstio.QNAME, Fooio.QNAME), codec.getActionPath( + ActionSpec.builder(Lstio.class).build(Fooio.class))); + assertEquals(Absolute.of(Grplst.QNAME, Bar.QNAME), codec.getActionPath( + ActionSpec.builder(Grplst.class).build( + org.opendaylight.yang.gen.v1.urn.odl.actions.norev.grplst.Bar.class))); } }