KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > dynaop > observer > SubjectMixin


1 package dynaop.observer;
2
3 import java.io.Serializable JavaDoc;
4 import java.util.ArrayList JavaDoc;
5 import java.util.Collection JavaDoc;
6 import java.util.Iterator JavaDoc;
7
8 import dynaop.Proxy;
9 import dynaop.ProxyAware;
10
11 /**
12  * Support class for subject mixins.
13  *
14  * @author Bob Lee (crazybob@crazybob.org)
15  */

16 public class SubjectMixin implements Subject, Serializable JavaDoc, ProxyAware {
17     
18     private Collection JavaDoc observers = new ArrayList JavaDoc();
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 JavaDoc argument) {
26         for (Iterator JavaDoc 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