Add simple data listeners
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / LazyDOMRpcResultFuture.java
index f6356135245c7995fb6ea1e80ebec40f9209fc9a..0c272f57aa55ff3998873bdd08b7c7be0c5646ef 100644 (file)
@@ -7,15 +7,16 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter;
 
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.util.concurrent.AbstractFuture;
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
 import org.opendaylight.mdsal.dom.api.DOMRpcException;
 import org.opendaylight.mdsal.dom.api.DOMRpcResult;
 import org.opendaylight.mdsal.dom.api.DefaultDOMRpcException;
@@ -23,11 +24,10 @@ import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult;
 import org.opendaylight.yangtools.util.concurrent.ExceptionMapper;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 final class LazyDOMRpcResultFuture extends AbstractFuture<DOMRpcResult> implements BindingRpcFutureAware {
-    private static final ExceptionMapper<DOMRpcException> DOM_RPC_EX_MAPPER =
-            new ExceptionMapper<DOMRpcException>("rpc", DOMRpcException.class) {
+    private static final ExceptionMapper<DOMRpcException> DOM_RPC_EX_MAPPER = new ExceptionMapper<>("rpc",
+            DOMRpcException.class) {
         @Override
         protected DOMRpcException newWithCause(final String message, final Throwable cause) {
             return cause instanceof DOMRpcException ? (DOMRpcException)cause
@@ -36,16 +36,16 @@ final class LazyDOMRpcResultFuture extends AbstractFuture<DOMRpcResult> implemen
     };
 
     private final ListenableFuture<RpcResult<?>> bindingFuture;
-    private final BindingNormalizedNodeCodecRegistry codec;
+    private final BindingNormalizedNodeSerializer codec;
     private volatile DOMRpcResult result;
 
     private LazyDOMRpcResultFuture(final ListenableFuture<RpcResult<?>> delegate,
-            final BindingNormalizedNodeCodecRegistry codec) {
-        this.bindingFuture = Preconditions.checkNotNull(delegate, "delegate");
-        this.codec = Preconditions.checkNotNull(codec, "codec");
+            final BindingNormalizedNodeSerializer codec) {
+        bindingFuture = requireNonNull(delegate, "delegate");
+        this.codec = requireNonNull(codec, "codec");
     }
 
-    static FluentFuture<DOMRpcResult> create(final BindingNormalizedNodeCodecRegistry codec,
+    static @NonNull LazyDOMRpcResultFuture create(final BindingNormalizedNodeSerializer codec,
             final ListenableFuture<RpcResult<?>> bindingResult) {
         return new LazyDOMRpcResultFuture(bindingResult, codec);
     }
@@ -111,12 +111,9 @@ final class LazyDOMRpcResultFuture extends AbstractFuture<DOMRpcResult> implemen
 
     private DOMRpcResult transform(final RpcResult<?> input) {
         if (input.isSuccessful()) {
-            final Object inputData = input.getResult();
-            if (inputData instanceof DataContainer) {
-                return new DefaultDOMRpcResult(codec.toNormalizedNodeRpcData((DataContainer) inputData));
-            }
-
-            return new DefaultDOMRpcResult((NormalizedNode<?, ?>) null);
+            final var value = input.getResult() instanceof DataContainer container
+                ? codec.toNormalizedNodeRpcData(container) : null;
+            return new DefaultDOMRpcResult(value);
         }
         return new DefaultDOMRpcResult(input.getErrors());
     }