a09c95815f07221804a39c1ec4ea3f4d0f159e40
[jalview.git] / src / jalview / ws2 / WebServiceWorkerListenersList.java
1 package jalview.ws2;
2
3 import java.util.List;
4 import java.util.concurrent.CopyOnWriteArrayList;
5 import java.util.function.Consumer;
6
7 public class WebServiceWorkerListenersList
8 {
9   private WebServiceWorkerI owner;
10   private List<WebServiceWorkerListener> listeners = new CopyOnWriteArrayList<>();
11   
12   public WebServiceWorkerListenersList(WebServiceWorkerI worker)
13   {
14     this.owner = worker;
15   }
16   
17   public void addListener(WebServiceWorkerListener listener)
18   {
19     listeners.add(listener);
20   }
21   
22   public void removeListener(WebServiceWorkerListener listener)
23   {
24     listeners.remove(listener);
25   }
26   
27   public void fireWorkerStarted()
28   {
29     for (var listener : listeners)
30       listener.workerStarted(owner);
31   }
32   
33   public void fireWorkerNotStarted()
34   {
35     for (var listener : listeners)
36       listener.workerNotStarted(owner);
37   }
38   
39   public void fireJobCreated(WSJob job)
40   {
41     for (var listener : listeners)
42       listener.jobCreated(owner, job);
43   }
44   
45   public void firePollException(WSJob job, Exception e)
46   {
47     for (var listener : listeners)
48       listener.pollException(owner, job, e);
49   }
50   
51   public void fireWorkerCompleting()
52   {
53     for (var listener : listeners)
54       listener.workerCompleting(owner);
55   }
56   
57   public void fireWorkerCompleted()
58   {
59     for (var listener : listeners)
60       listener.workerCompleted(owner);
61   }
62   
63   public List<WebServiceWorkerListener> getListeners()
64   {
65     return listeners;
66   }
67   
68   public void forEach(Consumer<WebServiceWorkerListener> consumer)
69   {
70     for (var listener : listeners)
71       consumer.accept(listener);
72   }
73 }