Add new methods to ConsistentMap API to improve usability.

Change-Id: I1e82f0ab191edc6b0f52c7d7b0307aa3d2ef9d1f

Change-Id: I4c5982fe6596f716729b7885eb584a60735cd41b
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/PartitionedDatabase.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/PartitionedDatabase.java
index 1239475..2903e0a 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/PartitionedDatabase.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/PartitionedDatabase.java
@@ -152,6 +152,22 @@
     }
 
     @Override
+    public CompletableFuture<Result<UpdateResult<Versioned<byte[]>>>> putAndGet(String tableName,
+            String key,
+            byte[] value) {
+        checkState(isOpen.get(), DB_NOT_OPEN);
+        return partitioner.getPartition(tableName, key).putAndGet(tableName, key, value);
+    }
+
+    @Override
+    public CompletableFuture<Result<UpdateResult<Versioned<byte[]>>>> putIfAbsentAndGet(String tableName,
+            String key,
+            byte[] value) {
+        checkState(isOpen.get(), DB_NOT_OPEN);
+        return partitioner.getPartition(tableName, key).putIfAbsentAndGet(tableName, key, value);
+    }
+
+    @Override
     public CompletableFuture<Result<Versioned<byte[]>>> remove(String tableName, String key) {
         checkState(isOpen.get(), DB_NOT_OPEN);
         return partitioner.getPartition(tableName, key).remove(tableName, key);
@@ -235,6 +251,13 @@
     }
 
     @Override
+    public CompletableFuture<Result<UpdateResult<Versioned<byte[]>>>> replaceAndGet(
+            String tableName, String key, long oldVersion, byte[] newValue) {
+        checkState(isOpen.get(), DB_NOT_OPEN);
+        return partitioner.getPartition(tableName, key).replaceAndGet(tableName, key, oldVersion, newValue);
+    }
+
+    @Override
     public CompletableFuture<Long> counterGet(String counterName) {
         checkState(isOpen.get(), DB_NOT_OPEN);
         return partitioner.getPartition(counterName, counterName).counterGet(counterName);