From 07315276858f9eeff0760b14ca87a25dc81041ed Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 25 Mar 2022 15:50:57 +0100 Subject: [PATCH] Peel DataSchemaNode-only users of InstanceIdentifierContext A number of callers are not providing a YangInstanceIdentifier, peel them off into a separate instantiation method. JIRA: NETCONF-818 Change-Id: Ic92cbc469d66e3e8ad957bde73c2f858b0daa8f2 Signed-off-by: Robert Varga --- .../common/context/InstanceIdentifierContext.java | 14 ++++++++++++++ .../impl/RestconfDocumentedExceptionMapper.java | 4 ++-- .../netconf/sal/restconf/impl/RestconfImpl.java | 6 +++--- .../input/to/cnsn/test/RestPutListDataTest.java | 5 +++-- .../to/xml/test/NnInstanceIdentifierToXmlTest.java | 9 +++------ .../restconf/impl/nn/to/xml/test/NnToXmlTest.java | 12 +++++------- .../impl/nn/to/xml/test/NnToXmlWithChoiceTest.java | 2 +- 7 files changed, 31 insertions(+), 21 deletions(-) diff --git a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/context/InstanceIdentifierContext.java b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/context/InstanceIdentifierContext.java index ff290ce001..3c7ed16a9c 100644 --- a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/context/InstanceIdentifierContext.java +++ b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/context/InstanceIdentifierContext.java @@ -12,10 +12,12 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.Iterables; import java.util.List; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.dom.api.DOMMountPoint; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.model.api.ContainerLike; +import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaNode; @@ -69,6 +71,18 @@ public final class InstanceIdentifierContext { return new InstanceIdentifierContext(context, rpc, null); } + // Invocations of various identifier-less details + public static @NonNull InstanceIdentifierContext ofDataSchemaNode(final EffectiveModelContext context, + final DataSchemaNode schemaNode) { + return new InstanceIdentifierContext(null, requireNonNull(schemaNode), null, requireNonNull(context)); + } + + // Invocations of various identifier-less details, potentially having a mount point + public static @NonNull InstanceIdentifierContext ofDataSchemaNode(final EffectiveModelContext context, + final DataSchemaNode schemaNode, final @Nullable DOMMountPoint mountPoint) { + return new InstanceIdentifierContext(null, requireNonNull(schemaNode), mountPoint, requireNonNull(context)); + } + public static @NonNull InstanceIdentifierContext ofLocalRpcInput(final EffectiveModelContext context, // FIXME: this this method really needed? final RpcDefinition rpc) { diff --git a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java index e0545519c9..1803a4b3ba 100644 --- a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java +++ b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java @@ -143,8 +143,8 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper