X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FCacheMemory.java;h=de4fae3892568662fd808a96a4896eb564678ddf;hp=232b63247f9ab0ccd9f20da405d33d4a0171adb8;hb=0013f760d69fd7db2b298c3da5d89bc0b102eabf;hpb=31242ff1db888dea7243e56d81aa4667a713cb47 diff --git a/src/be/nikiroo/utils/CacheMemory.java b/src/be/nikiroo/utils/CacheMemory.java index 232b632..de4fae3 100644 --- a/src/be/nikiroo/utils/CacheMemory.java +++ b/src/be/nikiroo/utils/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; } }