package context.arch.enactor; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Set; /** * A registry used by the EnactorSubscriptionManager to track references to widgets. * * @author newbergr */ public class WidgetReferenceRegistry extends HashMap<EnactorReference, WidgetReferenceRegistry.WidgetReferenceRegEntry> { private static final long serialVersionUID = 154392374190086012L; // private HashMap map = new HashMap(); // use subclass instead of delegate design pattern // public WidgetReferenceRegEntry get(EnactorReference rwr) { // return (WidgetReferenceRegEntry) map.get(rwr); // } // // public WidgetReferenceRegEntry remove(EnactorReference rwr) { // return (WidgetReferenceRegEntry) map.remove(rwr); // } // // public WidgetReferenceRegEntry put(EnactorReference rwr, WidgetReferenceRegEntry re) { // return (WidgetReferenceRegEntry) map.put(rwr, re); // } public Set<EnactorReference> getWidgetReferences() { // return map.keySet(); return keySet(); } static class WidgetReferenceRegEntry { public boolean addWidgetSubscription(String subId) { return widgetSubscriptions.add(subId); } public boolean removeWidgetSubscription(String subId) { return widgetSubscriptions.remove(subId); } public List<String> getWidgetSubscriptions() { // return retWR; return Collections.unmodifiableList(widgetSubscriptions); } private ArrayList<String> widgetSubscriptions = new ArrayList<String>(); // private List retWR = Collections.unmodifiableList(widgetSubscriptions); } }