[ONOS-6423] Implement missing getOrDefault methods in primitive wrappers
Change-Id: I560ee03e20511f5ffc93cc4ceb874cb3142c11ab
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java
index ccffead..4b9ff98 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/MeteredAsyncConsistentMap.java
@@ -54,6 +54,7 @@
private static final String CONTAINS_KEY = "containsKey";
private static final String CONTAINS_VALUE = "containsValue";
private static final String GET = "get";
+ private static final String GET_OR_DEFAULT = "getOrDefault";
private static final String COMPUTE_IF = "computeIf";
private static final String PUT = "put";
private static final String PUT_AND_GET = "putAndGet";
@@ -119,6 +120,13 @@
}
@Override
+ public CompletableFuture<Versioned<V>> getOrDefault(K key, V defaultValue) {
+ final MeteringAgent.Context timer = monitor.startTimer(GET_OR_DEFAULT);
+ return super.getOrDefault(key, defaultValue)
+ .whenComplete((r, e) -> timer.stop(e));
+ }
+
+ @Override
public CompletableFuture<Versioned<V>> computeIfAbsent(K key,
Function<? super K, ? extends V> mappingFunction) {
final MeteringAgent.Context timer = monitor.startTimer(COMPUTE_IF_ABSENT);