package org.exist.xquery.modules.cache;
import java.util.HashMap;
import org.exist.xquery.value.Sequence;
/**
* Static Global cache model
*
* @author Evgeny Gazdovsky <gazdovsky@gmail.com>
* @version 1.0
*/
public class Cache extends HashMap<String, Sequence>{
private static HashMap<String, Cache> globalCache = new HashMap<String, Cache>();
public Cache(String name){
super();
globalCache.put(name, this);
}
public static Cache getInstance(String name){
Cache cache = globalCache.get(name);
if (cache == null){
cache = new Cache(name);
}
return cache;
}
public Sequence put(String key, Sequence value){
Sequence v = super.put(key, value);
return (v==null) ? Sequence.EMPTY_SEQUENCE : v;
}
public static Sequence put(String name, String key, Sequence value){
return getInstance(name).put(key, value);
}
public Sequence get(String key){
Sequence v = super.get(key);
return (v==null) ? Sequence.EMPTY_SEQUENCE : v;
}
public static Sequence get(String name, String key){
return getInstance(name).get(key);
}
public Sequence remove(String key){
Sequence v = super.remove(key);
return (v==null) ? Sequence.EMPTY_SEQUENCE : v;
}
public static Sequence remove(String name, String key){
return getInstance(name).remove(key);
}
public static void clear(String name){
getInstance(name).clear();
}
public static void clearGlobal(){
globalCache.clear();
}
}