4 import java.util.ArrayList;
5 import java.util.Collection;
7 import java.util.concurrent.CompletableFuture;
8 import java.util.concurrent.CopyOnWriteArrayList;
10 public interface WebServiceDiscoverer
12 public static final int STATUS_OK = 1;
13 public static final int STATUS_NO_SERVICES = 0;
14 public static final int STATUS_INVALID = -1;
15 public static final int STATUS_UNKNOWN = -2;
17 public List<String> getUrls();
19 public void setUrls(List<String> wsUrls);
21 public boolean testUrl(URL url);
23 public int getStatusForUrl(String url);
25 public List<WebServiceI> getServices();
27 public boolean hasServices();
29 public boolean isRunning();
31 public boolean isDone();
33 public CompletableFuture<WebServiceDiscoverer> startDiscoverer();
35 public String getErrorMessages();
38 static interface ServiceChangeListener {
39 public void servicesChanged(WebServiceDiscoverer discoverer,
40 Collection<? extends WebServiceI> services);
43 List<ServiceChangeListener> serviceListeners = new CopyOnWriteArrayList<>();
45 public default void addServiceChangeListener(ServiceChangeListener listener) {
46 serviceListeners.add(listener);
49 public default void removeServiceChangeListener(ServiceChangeListener listener) {
50 serviceListeners.remove(listener);
53 default void fireServicesChanged(List<WebServiceI> services) {
54 for (var listener: serviceListeners) {
55 listener.servicesChanged(this, services);