package multimonster.edit; import java.util.Hashtable; import multimonster.common.resource.ResourceRequestIdentifier; import multimonster.common.resource.ResourceWaiter; /** * @author Holger Velke */ class EditResourceWaiters { private Hashtable waiters; /** @link * @shapeType PatternLink * @pattern Singleton * @supplierRole Singleton factory */ /* # private EditResourceWaiters _editResourceWaiters; */ private static EditResourceWaiters instance = null; /** * @supplierCardinality 0..* * @directed */ private EditHandler lnkEditHandler; protected EditResourceWaiters(){ this.waiters = new Hashtable(); } public static EditResourceWaiters getInstance(){ if (instance == null) { synchronized(multimonster.edit.EditResourceWaiters.class) { if (instance == null) { instance = new multimonster.edit.EditResourceWaiters(); } } } return instance; } public void addWaiter(ResourceRequestIdentifier rrId, ResourceWaiter waiter){ waiters.put(rrId, waiter); } public ResourceWaiter getWaiter(ResourceRequestIdentifier rrId){ ResourceWaiter waiter = (ResourceWaiter) waiters.get(rrId); if (waiter != null) { waiters.remove(rrId); } return waiter; } }