package foundation.server; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Container implements Iterable { protected static Logger logger; protected String name; protected Map items; protected T cached; protected String cachedKey; protected boolean dirty; static { logger = LogManager.getLogger(Container.class); } public Container(){ name = this.getClass().getSimpleName(); items = new HashMap(); } public void add(String name, T item) throws Exception { if (name != null) { items.put(name.toLowerCase(), item); } } public T get(String name) { if (name != null) { return items.get(name.toLowerCase()); } else { return null; } } public T getCached(String key) { if (key.equals(cachedKey)) { return cached; } cached = get(key); cachedKey = key; return cached; } public Iterator iterator() { return new ContainerIterator(this); } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean contains(String name) { if (name == null) { return false; } name = name.toLowerCase(); return items.containsKey(name); } public Map getItemMap() { return items; } public boolean isDirty() { return dirty; } public void setDirty(boolean dirty) { this.dirty = dirty; } public void clear() { items.clear(); } }