package gtPlusPlus.api.objects.data; import java.io.Serializable; import java.util.*; public class AutoMap implements Iterable, Cloneable, Serializable { /** * The Internal Map */ private Map mInternalMap = new HashMap(); /** * The Internal ID */ private int mInternalID = 0; private static final long serialVersionUID = 3771412318075131790L; @Override public Iterator iterator() { return values().iterator(); } public synchronized boolean setValue(V object){ int mOriginalID = this.mInternalID; put(object); if (this.mInternalMap.get(mOriginalID).equals(object) || mOriginalID > this.mInternalID){ return true; } else { return false; } } public synchronized V put(V object){ return set(object); } public synchronized V set(V object){ return mInternalMap.put(mInternalID++, object); } public synchronized V get(int id){ return mInternalMap.get(id); } public synchronized Collection values(){ return mInternalMap.values(); } public synchronized int size(){ return mInternalMap.size(); } public synchronized int hashcode(){ return mInternalMap.hashCode(); } public synchronized boolean containsKey(int key){ return mInternalMap.containsKey(key); } public synchronized boolean containsValue(V value){ return mInternalMap.containsValue(value); } public synchronized boolean isEmpty(){ return mInternalMap.isEmpty(); } public synchronized boolean clear(){ this.mInternalID = 0; this.mInternalMap.clear(); return true; } }