diff --git a/src/main/java/schule/ngb/zm/util/Cache.java b/src/main/java/schule/ngb/zm/util/Cache.java index d17b3f7..3d601c4 100644 --- a/src/main/java/schule/ngb/zm/util/Cache.java +++ b/src/main/java/schule/ngb/zm/util/Cache.java @@ -20,6 +20,12 @@ import java.util.stream.Collectors; * Collector gelöscht worden sein kann. *
* Als interne Map wird einen {@link ConcurrentHashMap} verwendet. + *
+ * Ein passender Cache wird mittels der Fabrikmethoden {@link #newSoftCache()} + * und {@link #newWeakCache()} erstellt. + *
+ * Cache<String, Image> imageCache = Cache.newSoftCache();
+ *
*
* @param + * Folgende Aufrufe von {@link #put(Object, Object)} mit demselben Schlüssel + * haben keinen Effekt. Um das Caching wieder zu aktivieren, muss + * {@link #remove(Object)} mit dem Schlüssel aufgerufen werden, + * + * @param key Der Schlüssel. + */ + public void disableCache( K key ) { cache.put(key, NOCACHE); } - public boolean isNocache( K key ) { + /** + * Prüft, ob der für den angegebenen Schlüssel zuvor + * {@link #disableCache(Object)} aufgerufen wurde. + * + * @param key Der Schlüssel. + * @return {@code true}, wenn der Schlüssel nicht gespeichert wird. + */ + public boolean isCachingDisabled( K key ) { return cache.get(key) == NOCACHE; } @Override public V put( K key, V value ) { - if( !isNocache(key) ) { + if( !isCachingDisabled(key) ) { V prev = remove(key); cache.put(key, refSupplier.apply(value)); return prev; diff --git a/src/main/java/schule/ngb/zm/util/io/ImageLoader.java b/src/main/java/schule/ngb/zm/util/io/ImageLoader.java index 9605440..1a931c2 100644 --- a/src/main/java/schule/ngb/zm/util/io/ImageLoader.java +++ b/src/main/java/schule/ngb/zm/util/io/ImageLoader.java @@ -16,7 +16,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftReference; -import java.util.Map; /** * Eine Helferklasse mit Klassenmethoden, um Bilder zu laden. @@ -190,7 +189,7 @@ public final class ImageLoader { * @param name Die Quelle des Bildes. */ public static void preventCache( final String name ) { - imageCache.nocache(name); + imageCache.disableCache(name); } /**