Added an async version for AtomicValue and misc javadoc improvements

Change-Id: Idc401964a726d221c01ecda0cc42c4a92551113f
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
index b39004b..7fc3e8d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAtomicValueBuilder.java
@@ -16,6 +16,7 @@
 package org.onosproject.store.consistent.impl;
 
 import org.onosproject.store.serializers.KryoNamespaces;
+import org.onosproject.store.service.AsyncAtomicValue;
 import org.onosproject.store.service.AtomicValue;
 import org.onosproject.store.service.AtomicValueBuilder;
 import org.onosproject.store.service.ConsistentMapBuilder;
@@ -28,13 +29,12 @@
  */
 public class DefaultAtomicValueBuilder<V> implements AtomicValueBuilder<V> {
 
-    private Serializer serializer;
     private String name;
-    private ConsistentMapBuilder<String, byte[]> mapBuilder;
+    private ConsistentMapBuilder<String, V> mapBuilder;
     private boolean metering = true;
 
     public DefaultAtomicValueBuilder(DatabaseManager manager) {
-        mapBuilder = manager.<String, byte[]>consistentMapBuilder()
+        mapBuilder = manager.<String, V>consistentMapBuilder()
                             .withName("onos-atomic-values")
                             .withMeteringDisabled()
                             .withSerializer(Serializer.using(KryoNamespaces.BASIC));
@@ -48,7 +48,7 @@
 
     @Override
     public AtomicValueBuilder<V> withSerializer(Serializer serializer) {
-        this.serializer = serializer;
+        mapBuilder.withSerializer(serializer);
         return this;
     }
 
@@ -65,7 +65,12 @@
     }
 
     @Override
+    public AsyncAtomicValue<V> buildAsyncValue() {
+        return new DefaultAsyncAtomicValue<>(mapBuilder.buildAsyncMap(), name, metering);
+    }
+
+    @Override
     public AtomicValue<V> build() {
-        return new DefaultAtomicValue<>(mapBuilder.build(), name, metering, serializer);
+        return new DefaultAtomicValue<>(buildAsyncValue());
     }
 }
\ No newline at end of file