package foundation.dao.preload;
|
|
import java.util.Iterator;
|
import java.util.List;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.util.MapList;
|
|
public class Bucket<T> implements Iterable<T> {
|
|
protected static Logger logger;
|
protected MapList<String, T> items;
|
protected CachedOne cached;
|
|
|
static {
|
logger = LogManager.getLogger(Bucket.class);
|
}
|
|
public Bucket() {
|
items = new MapList<String, T>();
|
cached = new CachedOne();
|
}
|
|
public void loadOne(String key, T one) {
|
items.add(key, one);
|
cached.set(key, one);
|
}
|
|
@SuppressWarnings("unchecked")
|
public T getCachedOne(String key) {
|
T result = null;
|
|
if (cached.equalsKey(key)) {
|
result = (T)cached.get();
|
return result;
|
}
|
|
result = items.get(key);
|
cached.set(key, result);
|
return result;
|
}
|
|
public T get(String key) {
|
return items.get(key);
|
}
|
|
public boolean contains(String key) {
|
return items.contains(key);
|
}
|
|
public void remove(String key) {
|
items.remove(key);
|
cached.clear();
|
}
|
|
@Override
|
public Iterator<T> iterator() {
|
return items.iterator();
|
}
|
|
public void activate() {
|
|
}
|
|
public List<T> getList() {
|
return items.getItemList();
|
}
|
|
public int size() {
|
return items.size();
|
}
|
|
}
|