Improve BindingCodecTree.getSubtreeCodec() 81/106181/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 26 May 2023 21:51:09 +0000 (23:51 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 27 May 2023 02:10:13 +0000 (04:10 +0200)
The only implementation we have returns non-null and throws exceptions.
Promote that behaviour to how the method is meant to operate.

Change-Id: I836ee8adb20d23b7b9938dbdeb827aa7a5443bc2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 595e8b44f8fd85c6df1b09d05c8d807c02e41cc4)

binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingCodecTree.java

index 124d9fd3e3b70be8718be73338bd8e1939e151a7..37ed59f5b169f515327f57dabdf87010db011813 100644 (file)
@@ -23,8 +23,16 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol
  */
 // TODO: Add more detailed documentation
 public interface BindingCodecTree extends BindingDataObjectCodecTreeParent<Empty> {
-
-    @Nullable <T extends DataObject> BindingDataObjectCodecTreeNode<T> getSubtreeCodec(InstanceIdentifier<T> path);
+    /**
+     * Look up the codec for specified path.
+     *
+     * @param <T> DataObject type
+     * @param path Binding path
+     * @return A {@link BindingDataObjectCodecTreeNode}
+     * @throws NullPointerException if {@code path} is {@code null}
+     * @throws IllegalArgumentException if the codec cannot be resolved
+     */
+    <T extends DataObject> @NonNull BindingDataObjectCodecTreeNode<T> getSubtreeCodec(InstanceIdentifier<T> path);
 
     @Nullable BindingCodecTreeNode getSubtreeCodec(YangInstanceIdentifier path);