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 9dcded5..6abe5c0 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
@@ -114,21 +114,39 @@ public class MultiCache<K, V> implements Cache<K, V> {
}
public Set<Map.Entry<K, V>> entrySet() {
- return this.map.entrySet().stream()
+ Set<Map.Entry<K, V>> entrySet = this.map.entrySet().stream()
.filter(entry -> isValid(entry.getKey()))
.collect(Collectors.
toMap(entry -> entry.getKey(), entry -> entry.getValue())
).entrySet();
+ entrySet.forEach(entry -> {
+ String identifier = getIdentifier(entry.getValue());
+ if (CACHE_REGISTER_SIZE) {
+ this.cachePerformance.registerEvent(EventType.HIT, identifier, CachePerformance.calculateObjectSize(entry.getValue()));
+ } else {
+ this.cachePerformance.registerEvent(EventType.HIT, identifier);
+ }
+ });
+ return entrySet;
}
public List<V> values() {
- return this.map.entrySet().stream()
+ List<V> values = this.map.entrySet().stream()
.filter(entry -> isValid(entry.getKey()))
.map(entry -> entry.getValue())
.collect(Collectors.toList());
+ values.forEach(get -> {
+ String identifier = getIdentifier(get);
+ if (CACHE_REGISTER_SIZE) {
+ this.cachePerformance.registerEvent(EventType.HIT, identifier, CachePerformance.calculateObjectSize(get));
+ } else {
+ this.cachePerformance.registerEvent(EventType.HIT, identifier);
+ }
+ });
+ return values;
}
- public boolean containsKey(K key) {
+ private boolean containsKey(K key) {
return this.map.containsKey(key) && isValid(key);
}