1 package dynaop.observer; 2 3 import java.io.Serializable ; 4 import java.util.ArrayList ; 5 import java.util.Collection ; 6 import java.util.Iterator ; 7 8 import dynaop.Proxy; 9 import dynaop.ProxyAware; 10 11 16 public class SubjectMixin implements Subject, Serializable , ProxyAware { 17 18 private Collection observers = new ArrayList (); 19 private Subject subject; 20 21 public synchronized void addObserver(Observer observer) { 22 this.observers.add(observer); 23 } 24 25 public synchronized void notifyObservers(Object argument) { 26 for (Iterator i = this.observers.iterator(); i.hasNext();) 27 ((Observer) i.next()).notify(this.subject, argument); 28 } 29 30 public synchronized void removeObserver(Observer observer) { 31 this.observers.remove(observer); 32 } 33 34 public void setProxy(Proxy proxy) { 35 this.subject = (Subject) proxy; 36 } 37 } 38 | Popular Tags |