From 3519cb5c518d569235beaedfc3071cba45ec848d Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Mon, 6 Apr 2020 12:29:59 +0200 Subject: [PATCH] Merge master back into subtree --- CacheMemory.java | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/CacheMemory.java b/CacheMemory.java index 232b632..de4fae3 100644 --- a/CacheMemory.java +++ b/CacheMemory.java @@ -1,5 +1,6 @@ package be.nikiroo.utils; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -12,12 +13,13 @@ import java.util.Map; * @author niki */ public class CacheMemory extends Cache { - private Map data = new HashMap(); + private Map data; /** * Create a new {@link CacheMemory}. */ public CacheMemory() { + data = new HashMap(); } @Override @@ -44,7 +46,7 @@ public class CacheMemory extends Cache { @Override public InputStream load(String uniqueID, boolean allowTooOld, boolean stable) { if (check(uniqueID, allowTooOld, stable)) { - return load(uniqueID, allowTooOld, stable); + return load(getKey(uniqueID)); } return null; @@ -53,7 +55,7 @@ public class CacheMemory extends Cache { @Override public InputStream load(URL url, boolean allowTooOld, boolean stable) { if (check(url, allowTooOld, stable)) { - return load(url, allowTooOld, stable); + return load(getKey(url)); } return null; @@ -86,24 +88,37 @@ public class CacheMemory extends Cache { /** * Return a key mapping to the given unique ID. * - * @param uniqueID - * the unique ID + * @param uniqueID the unique ID * * @return the key */ private String getKey(String uniqueID) { - return "_/" + uniqueID; + return "UID:" + uniqueID; } /** * Return a key mapping to the given urm. * - * @param url - * thr url + * @param url the url * * @return the key */ private String getKey(URL url) { - return url.toString(); + return "URL:" + url.toString(); + } + + /** + * Load the given key. + * + * @param key the key to load + * @return the loaded data + */ + private InputStream load(String key) { + byte[] data = this.data.get(key); + if (data != null) { + return new ByteArrayInputStream(data); + } + + return null; } } -- 2.27.0