diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
index 702a450..4d9ac55 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
@@ -14,6 +14,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import java.util.function.BiConsumer;
import java.util.stream.Collectors;
/**
@@ -118,6 +119,12 @@ public class MultiCache<K, V> implements Cache<K, V> {
return entrySet;
}
+ public void forEach(BiConsumer<K, V> consumer) {
+ entrySet().forEach(entry -> {
+ consumer.accept(entry.getKey(), entry.getValue());
+ });
+ }
+
public List<V> values() {
List<V> values = this.map.entrySet().stream()
.filter(entry -> isValid(entry.getKey()))
@@ -131,7 +138,15 @@ public class MultiCache<K, V> implements Cache<K, V> {
return values;
}
- private boolean containsKey(K key) {
+ public int size() {
+ return values().size();
+ }
+
+ public boolean isEmpty() {
+ return values().isEmpty();
+ }
+
+ public boolean containsKey(K key) {
return this.map.containsKey(key) && isValid(key);
}