4 import java.util.ArrayList;
5 import java.util.Collection;
7 import java.util.concurrent.CompletableFuture;
8 import java.util.concurrent.CopyOnWriteArrayList;
10 import jalview.ws2.operations.Operation;
12 public interface WebServiceDiscoverer
14 public static final int STATUS_OK = 1;
16 public static final int STATUS_NO_SERVICES = 0;
18 public static final int STATUS_INVALID = -1;
20 public static final int STATUS_UNKNOWN = -2;
22 public List<String> getUrls();
24 public void setUrls(List<String> wsUrls);
26 public boolean testUrl(URL url);
28 public int getStatusForUrl(String url);
30 public List<Operation> getOperations();
32 public boolean hasServices();
34 public boolean isRunning();
36 public boolean isDone();
38 public CompletableFuture<WebServiceDiscoverer> startDiscoverer();
40 public String getErrorMessages();
43 static interface ServiceChangeListener
45 public void operationsChanged(WebServiceDiscoverer discoverer,
46 List<Operation> list);
49 List<ServiceChangeListener> serviceListeners = new CopyOnWriteArrayList<>();
51 public default void addServiceChangeListener(
52 ServiceChangeListener listener)
54 serviceListeners.add(listener);
57 public default void removeServiceChangeListener(
58 ServiceChangeListener listener)
60 serviceListeners.remove(listener);
63 default void fireOperationsChanged(List<Operation> list)
65 for (var listener : serviceListeners)
67 listener.operationsChanged(this, list);