Adding additional resources for instantiating async consistent treemaps.
Change-Id: I7bfc602ac22eda1844fea2a7b3e3133f83157bf3
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java
index bf1aa0e..83af62d 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DistributedPrimitives.java
@@ -18,6 +18,7 @@
import java.util.function.Function;
import org.onosproject.store.service.AsyncConsistentMap;
+import org.onosproject.store.service.AsyncConsistentTreeMap;
import org.onosproject.store.service.AsyncDistributedSet;
/**
@@ -100,4 +101,24 @@
valueEncoder,
valueDecoder);
}
+
+ /**
+ * Creates an instance of {@code DistributedTreeMap} that transforms operations inputs and applies them
+ * to corresponding operation in a different typed map and returns the output after reverse transforming it.
+ *
+ * @param map backing map
+ * @param valueEncoder transformer for value type of returned map to value type of input map
+ * @param valueDecoder transformer for value type of input map to value type of returned map
+ * @param <V1> returned map value type
+ * @param <V2> input map key type
+ * @return new map
+ */
+ public static <V1, V2> AsyncConsistentTreeMap<V1> newTranscodingTreeMap(
+ AsyncConsistentTreeMap<V2> map,
+ Function<V1, V2> valueEncoder,
+ Function<V2, V1> valueDecoder) {
+ return new TranscodingAsyncConsistentTreeMap<>(map,
+ valueEncoder,
+ valueDecoder);
+ }
}