package chat.server; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.log4j.Logger; import frame.util.Util; public class Container implements Iterable { protected static Logger logger; protected String name; private List dependentContainer; protected Map items; protected Map> classes; protected boolean dirty; static { logger = Logger.getLogger("Collector"); } public Container(){ name = this.getClass().getSimpleName(); dependentContainer = new ArrayList(); items = new HashMap(); classes = new HashMap>(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public void add(String name, T item) { 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 List getItemList(){ List result = new LinkedList(); Set keys = items.keySet(); for (String key : keys){ result.add(items.get(key)); } return result; } public void addItemClass (String name, Class clazz) { classes.put(name, clazz); } public Iterator iterator() { return new ContainerIterator(this); } public void afterLoad() { } public boolean contains(String name) { if (name != null) { return items.containsKey(name.toLowerCase()); } else { return false; } } public List getDependentContainer() { return dependentContainer; } public Map getItemMap() { return items; } public void addDependentContainer(String value) { if (!Util.isEmptyStr(value)) { dependentContainer.add(value); } } public boolean isDirty() { return dirty; } public void setDirty(boolean dirty) { this.dirty = dirty; } public void clear() { items.clear(); } }