1 33 34 package edu.rice.cs.drjava.model; 35 36 import java.util.LinkedList ; 37 import edu.rice.cs.util.ReaderWriterLock; 38 import edu.rice.cs.util.swing.Utilities; 39 40 44 public abstract class EventNotifier<T> { 45 46 49 protected final LinkedList <T> _listeners = new LinkedList <T>(); 50 51 55 protected final ReaderWriterLock _lock = new ReaderWriterLock(); 56 57 60 public void addListener(T listener) { 61 _lock.startWrite(); 63 try { _listeners.add(listener); } 64 finally { 65 _lock.endWrite(); 66 } 68 } 69 70 73 public void removeListener(T listener) { 74 _lock.startWrite(); 76 try { _listeners.remove(listener); } 77 finally { 78 _lock.endWrite(); 79 } 81 } 82 83 84 public void removeAllListeners() { 85 _lock.startWrite(); 87 try { _listeners.clear(); } 88 finally { 89 _lock.endWrite(); 90 } 92 } 93 } 94 | Popular Tags |