1 19 20 package org.netbeans.modules.versioning.util; 21 22 import java.util.*; 23 24 29 public class ListenersSupport { 30 31 private final Object source; 32 private HashSet listeners = new HashSet(1); 33 34 public ListenersSupport(Object source) { 35 this.source = source; 36 } 37 38 public synchronized void addListener(VersioningListener listener) { 39 HashSet copy = (HashSet) listeners.clone(); 40 copy.add(listener); 41 listeners = copy; 42 } 43 44 public synchronized void removeListener(VersioningListener listener) { 45 HashSet copy = (HashSet) listeners.clone(); 46 copy.remove(listener); 47 listeners = copy; 48 } 49 50 public void fireVersioningEvent(Object eventID) { 51 fireVersioningEvent(new VersioningEvent(source, eventID, null)); 52 } 53 54 public void fireVersioningEvent(Object eventID, Object param) { 55 fireVersioningEvent(new VersioningEvent(source, eventID, new Object [] { param })); 56 } 57 58 public void fireVersioningEvent(Object eventID, Object [] params) { 59 fireVersioningEvent(new VersioningEvent(source, eventID, params)); 60 } 61 62 private void fireVersioningEvent(VersioningEvent event) { 63 for (Iterator i = listeners.iterator(); i.hasNext();) { 64 VersioningListener listener = (VersioningListener) i.next(); 65 listener.versioningEvent(event); 66 } 67 } 68 } 69 | Popular Tags |