1 package org.codehaus.xfire.service; 2 3 import java.util.Collection; 4 5 import org.codehaus.xfire.service.event.RegistrationEventListener; 6 7 /*** 8 * Defines the interface that for places to register, unregister, and get information about services. 9 * 10 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 11 * @author <a href="mailto:poutsma@mac.com">Arjen Poutsma</a> 12 */ 13 public interface ServiceRegistry 14 { 15 /*** 16 * Constant used to define the role of service registries. 17 */ 18 public static final String ROLE = ServiceRegistry.class.getName(); 19 20 /*** 21 * Returns the <code>ServiceEndpoint</code> with the given name, if found. Returns <code>null</code> if not found. 22 * 23 * @param name the service name. 24 * @return the service endpoint, or <code>null</code> if not found. 25 */ 26 Service getService(String name); 27 28 /*** 29 * Registers a given <code>ServiceEndpoint</code> with this registry. 30 * 31 * @param endpoint the endpoint. 32 */ 33 void register(Service endpoint); 34 35 /*** 36 * Unregisters the service endpoint with the given name, if found. 37 * 38 * @param name the service name. 39 */ 40 void unregister(String name); 41 42 /*** 43 * Indicates whether this registry has a service endpoint with the given name. 44 * 45 * @param name the service name. 46 * @return <code>true</code> if this registry has a service with the given name; <code>false</code> otherwise. 47 */ 48 boolean hasService(String name); 49 50 /*** 51 * Returns all <code>ServiceEndpoint</code> registered to this registry. 52 * 53 * @return all service endpoints. 54 */ 55 Collection getServices(); 56 57 /*** 58 * Add a listener for registration events. 59 * 60 * @param listener the listener. 61 */ 62 void addRegistrationEventListener(RegistrationEventListener listener); 63 64 /*** 65 * Remove a listener for registration events. 66 * 67 * @param listener the listener. 68 */ 69 void removeRegistrationEventListener(RegistrationEventListener listener); 70 }