4 import java.util.concurrent.CopyOnWriteArrayList;
5 import jalview.ws2.WebServiceDiscovererI.OperationsChangeListener;
6 import jalview.ws2.operations.Operation;
9 * A helper class that manages a list of OperationsChangeListeners
10 * Used by web service discoverers to store listeners.
14 public class OperationsChangeListenerList
16 private List<OperationsChangeListener> listeners = new CopyOnWriteArrayList<>();
17 private WebServiceDiscovererI discoverer;
19 public OperationsChangeListenerList(WebServiceDiscovererI discoverer)
21 this.discoverer = discoverer;
25 * Add an operations list observer that will be notified of any changes.
28 * operations list listener
30 public void addListener(OperationsChangeListener listener)
32 listeners.add(listener);
36 * Remove the listener from the observers list.
39 * listener to be removed
41 public void removeListener(OperationsChangeListener listener)
43 listeners.remove(listener);
47 * Called whenever the list of operations changes. Notifies all listeners of
48 * the change to the operations list. Typically, should be called with an
49 * empty list at the beginning of the service discovery process and for the
50 * second time with the list of discovered operations after that.
53 * new list of discovered operations
55 public void fireOperationsChanged(List<Operation> list)
57 for (var listener : listeners)
59 listener.operationsChanged(discoverer, list);