Simplify ListenableFuture translation
[controller.git] / opendaylight / md-sal / sal-dom-compat / src / main / java / org / opendaylight / controller / sal / core / compat / DOMStoreReadTransactionAdapter.java
index a7628de5c924fafd920b7a7f3c19ce3239f8f15e..0f9b9c3e5bdba9d545e553a73ce8f57f37125054 100644 (file)
@@ -9,27 +9,18 @@ package org.opendaylight.controller.sal.core.compat;
 
 import static java.util.Objects.requireNonNull;
 
+import com.google.common.base.Optional;
 import com.google.common.collect.ForwardingObject;
 import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+import org.opendaylight.controller.md.sal.common.api.MappingCheckedFuture;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction;
-import org.opendaylight.mdsal.common.api.MappingCheckedFuture;
-import org.opendaylight.yangtools.util.concurrent.ExceptionMapper;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 public class DOMStoreReadTransactionAdapter<T extends org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction>
         extends ForwardingObject implements DOMStoreReadTransaction {
-    public static final ExceptionMapper<ReadFailedException> READ_EX_MAPPER =
-            new ExceptionMapper<ReadFailedException>("read", ReadFailedException.class) {
-        @Override
-        protected ReadFailedException newWithCause(final String message, final Throwable cause) {
-            return cause instanceof org.opendaylight.mdsal.common.api.ReadFailedException
-                    ? new ReadFailedException(cause.getMessage(), cause.getCause())
-                            : new ReadFailedException(message, cause);
-        }
-    };
-
     private final T delegate;
 
     public DOMStoreReadTransactionAdapter(final T delegate) {
@@ -54,11 +45,12 @@ public class DOMStoreReadTransactionAdapter<T extends org.opendaylight.mdsal.dom
     @Override
     public CheckedFuture<com.google.common.base.Optional<NormalizedNode<?, ?>>, ReadFailedException> read(
             final YangInstanceIdentifier path) {
-        return MappingCheckedFuture.create(delegate.read(path), READ_EX_MAPPER);
+        return MappingCheckedFuture.create(delegate.read(path).transform(
+            Optional::fromJavaUtil, MoreExecutors.directExecutor()), ReadFailedExceptionAdapter.INSTANCE);
     }
 
     @Override
     public CheckedFuture<Boolean, ReadFailedException> exists(final YangInstanceIdentifier path) {
-        return MappingCheckedFuture.create(delegate.exists(path), READ_EX_MAPPER);
+        return MappingCheckedFuture.create(delegate.exists(path), ReadFailedExceptionAdapter.INSTANCE);
     }
 }