annotate artifacts-common/src/main/java/org/dive4elements/artifacts/common/utils/LRUCache.java @ 472:783cc1b6b615

Moved directories to org.dive4elements
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 10:53:15 +0200
parents artifacts-common/src/main/java/de/intevation/artifacts/common/utils/LRUCache.java@c40729bfe06d
children 415df0fc4fa1
rev   line source
306
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.artifacts.common.utils;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import java.util.Map;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 import java.util.LinkedHashMap;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 public class LRUCache<K, V>
394
c40729bfe06d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 306
diff changeset
7 extends LinkedHashMap<K, V>
306
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 {
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 public static final int DEFAULT_MAX_CAPACITY = 25;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 private int maxCapacity;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 public LRUCache() {
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 this(DEFAULT_MAX_CAPACITY);
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 }
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 public LRUCache(int maxCapacity) {
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 this.maxCapacity = maxCapacity;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 }
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 @Override
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 return size() > maxCapacity;
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 }
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 }
9dbeb88006e9 Added simple in-memory LRU cache
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org