private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
private void checkCacheSize() { if (maxElements > 0 && mapDelegate.size() > maxElements) { TreeSet<AggregatedSoftReference> usedReferences = new TreeSet<>(new ComparatorAgregated()); for (AggregatedSoftReference ref : mapDelegate.values()) { V v = ref.get(); if (v != null && !v.isLive()) { usedReferences.add(ref); } } for (AggregatedSoftReference ref : usedReferences) { if (ref.used > 0) { Object removed = mapDelegate.remove(ref.key); if (logger.isTraceEnabled()) { logger.trace("Removing " + removed + " with id = " + ref.key + " from SoftValueHashMap"); } if (mapDelegate.size() <= maxElements) { break; } } } } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
/** * @param key * @param value * @see java.util.Map#put(java.lang.Object, java.lang.Object) */ @Override public V put(final K key, final V value) { processQueue(); AggregatedSoftReference newRef = createReference(key, value); AggregatedSoftReference oldRef = mapDelegate.put(key, newRef); checkCacheSize(); newRef.used(); if (oldRef != null) { return oldRef.get(); } else { return null; } }
/** * @see java.util.Map#values() */ @Override public Collection<V> values() { processQueue(); ArrayList<V> list = new ArrayList<>(); for (AggregatedSoftReference refs : mapDelegate.values()) { V value = refs.get(); if (value != null) { list.add(value); } } return list; }
/** * @see java.util.Map#entrySet() */ @Override public Set<java.util.Map.Entry<K, V>> entrySet() { processQueue(); HashSet<Map.Entry<K, V>> set = new HashSet<>(); for (Map.Entry<K, AggregatedSoftReference> pair : mapDelegate.entrySet()) { V value = pair.getValue().get(); if (value != null) { set.add(new EntryElement<>(pair.getKey(), value)); } } return set; }
/** * @see java.util.Map#values() */ @Override public Collection<V> values() { processQueue(); ArrayList<V> list = new ArrayList<>(); for (AggregatedSoftReference refs : mapDelegate.values()) { V value = refs.get(); if (value != null) { list.add(value); } } return list; }
/** * @see java.util.Map#entrySet() */ @Override public Set<java.util.Map.Entry<K, V>> entrySet() { processQueue(); HashSet<Map.Entry<K, V>> set = new HashSet<>(); for (Map.Entry<K, AggregatedSoftReference> pair : mapDelegate.entrySet()) { V value = pair.getValue().get(); if (value != null) { set.add(new EntryElement<>(pair.getKey(), value)); } } return set; }
/** * @param value * @see java.util.Map#containsValue(java.lang.Object) */ @Override public boolean containsValue(final Object value) { processQueue(); for (AggregatedSoftReference valueIter : mapDelegate.values()) { V valueElement = valueIter.get(); if (valueElement != null && value.equals(valueElement)) { return true; } } return false; }
/** * @param value * @see java.util.Map#containsValue(java.lang.Object) */ @Override public boolean containsValue(final Object value) { processQueue(); for (AggregatedSoftReference valueIter : mapDelegate.values()) { V valueElement = valueIter.get(); if (valueElement != null && value.equals(valueElement)) { return true; } } return false; }