doesExists() utility method
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / datastoreutils / SingleTransactionDataBroker.java
index f19a3f85ed7ee5bd45adc31b563bfee085be01f7..5764b2a11a51f1000b4ab299d0b89f8b6ea18a35 100644 (file)
@@ -11,6 +11,7 @@ import static java.util.Objects.requireNonNull;
 import static org.opendaylight.genius.datastoreutils.TransactionCommitFailedExceptionMapper.SUBMIT_MAPPER;
 
 import com.google.common.base.Optional;
+import java.util.concurrent.ExecutionException;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
@@ -255,4 +256,13 @@ public class SingleTransactionDataBroker {
                 runner.callWithNewWriteOnlyTransactionAndSubmit(tx -> tx.delete(datastoreType, path)), SUBMIT_MAPPER);
     }
 
+    public static <T extends DataObject> Boolean doesExists(
+            DataBroker broker, LogicalDatastoreType datastoreType, InstanceIdentifier<T> path)
+            throws ReadFailedException {
+        try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+            return tx.exists(datastoreType, path).get();
+        } catch (InterruptedException | ExecutionException e) {
+            throw new ReadFailedException(e.getMessage(), e);
+        }
+    }
 }