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;
14 public static final int STATUS_NO_SERVICES = 0;
16 public static final int STATUS_INVALID = -1;
18 public static final int STATUS_UNKNOWN = -2;
20 public List<String> getUrls();
22 public void setUrls(List<String> wsUrls);
24 public boolean testUrl(URL url);
26 public int getStatusForUrl(String url);
28 public List<WebServiceI> getServices();
30 public boolean hasServices();
32 public boolean isRunning();
34 public boolean isDone();
36 public CompletableFuture<WebServiceDiscoverer> startDiscoverer();
38 public String getErrorMessages();
41 static interface ServiceChangeListener
43 public void servicesChanged(WebServiceDiscoverer discoverer,
44 Collection<? extends WebServiceI> services);
47 List<ServiceChangeListener> serviceListeners = new CopyOnWriteArrayList<>();
49 public default void addServiceChangeListener(
50 ServiceChangeListener listener)
52 serviceListeners.add(listener);
55 public default void removeServiceChangeListener(
56 ServiceChangeListener listener)
58 serviceListeners.remove(listener);
61 default void fireServicesChanged(List<WebServiceI> services)
63 for (var listener : serviceListeners)
65 listener.servicesChanged(this, services);