doesExists() utility method 74/88274/1
authorShashidhar Raja <shashidharr@altencalsoftlabs.com>
Thu, 5 Mar 2020 12:22:04 +0000 (17:52 +0530)
committerShashidhar Raja <shashidharr@altencalsoftlabs.com>
Thu, 5 Mar 2020 12:22:04 +0000 (17:52 +0530)
Common utility method doesExists() added to check whether any DS entry
exists or not in SingleTransactionDataBroker

Change-Id: I92a8f5bda8d4d924be6a820e6a18acd598a40dae
Signed-off-by: Shashidhar Raja <shashidharr@altencalsoftlabs.com>
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);
+        }
+    }
 }