# HG changeset patch # User Sascha L. Teichmann # Date 1311862105 0 # Node ID 9dbeb88006e9879d6b24c127e3ec3d48ec595b4c # Parent f33401ea2a6c3d15b73a986eacb86398457e3510 Added simple in-memory LRU cache artifacts/trunk@2414 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r f33401ea2a6c -r 9dbeb88006e9 ChangeLog --- a/ChangeLog Thu Jul 28 10:19:35 2011 +0000 +++ b/ChangeLog Thu Jul 28 14:08:25 2011 +0000 @@ -1,3 +1,8 @@ +2011-07-28 Sascha L. Teichmann + + * artifacts-common/src/main/java/de/intevation/artifacts/common/utils/LRUCache.java: + New. Simple LRU cache based on java.util.LinkedHashMap. + 2011-07-28 Sascha L. Teichmann Refactorized the usage of dialect independent SQL to be reusable. diff -r f33401ea2a6c -r 9dbeb88006e9 artifacts-common/src/main/java/de/intevation/artifacts/common/utils/LRUCache.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/LRUCache.java Thu Jul 28 14:08:25 2011 +0000 @@ -0,0 +1,26 @@ +package de.intevation.artifacts.common.utils; + +import java.util.Map; +import java.util.LinkedHashMap; + +public class LRUCache +extends LinkedHashMap +{ + public static final int DEFAULT_MAX_CAPACITY = 25; + + private int maxCapacity; + + public LRUCache() { + this(DEFAULT_MAX_CAPACITY); + } + + public LRUCache(int maxCapacity) { + this.maxCapacity = maxCapacity; + } + + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + return size() > maxCapacity; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :