View Javadoc
1   
2   package org.state4j.publishing;
3   
4   import java.util.Iterator;
5   import java.util.List;
6   import java.util.Vector;
7   
8   public class PublisherImpl implements Publisher {
9       private List<Observer> observers = new Vector<Observer>();
10  
11      public PublisherImpl() {}
12  
13      public void attach(Observer arg0) {
14          this.observers.add(arg0);
15          arg0.addPublisher(this);
16      }
17  
18      public void attach(List<Observer> arg0) {
19          Iterator<Observer> iter = arg0.iterator();
20          while (iter.hasNext()) {
21              Observer arg1 = iter.next();
22              this.observers.add(arg1);
23              arg1.addPublisher(this);
24          }
25      }
26  
27      public void detach(Observer arg0) {
28          this.observers.remove(arg0);
29          arg0.removePublisher(this);
30      }
31  
32      public void publish(Publishable arg0) {
33          Iterator<Observer> iter = this.observers.iterator();
34          while (iter.hasNext()) {
35              Observer observer = iter.next();
36              try {
37                  observer.notify(arg0);
38              } catch (InterruptedException exc) {
39              }
40          }
41      }
42  }