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 implements Iterable { protected static Logger logger; protected MapList items; protected CachedOne cached; static { logger = LogManager.getLogger(Bucket.class); } public Bucket() { items = new MapList(); 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 iterator() { return items.iterator(); } public void activate() { } public List getList() { return items.getItemList(); } public int size() { return items.size(); } }