org.eclipse.ecf.discovery
Class AbstractDiscoveryContainerAdapter

java.lang.Object
  extended by org.eclipse.ecf.core.AbstractContainer
      extended by org.eclipse.ecf.discovery.AbstractDiscoveryContainerAdapter
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable, IContainer, IIdentifiable, IDiscoveryContainerAdapter
Direct Known Subclasses:
CompositeDiscoveryContainer, JMDNSDiscoveryContainer, JSLPDiscoveryContainer

public abstract class AbstractDiscoveryContainerAdapter
extends AbstractContainer
implements IDiscoveryContainerAdapter, IContainer


Field Summary
protected  java.util.Set allServiceListeners
          Collection of service listeners i.e.
protected  java.util.Map serviceListeners
          Map of service type to collection of service listeners i.e.
protected  java.lang.String servicesNamespaceName
           
protected  java.util.Collection serviceTypeListeners
          Collection of service type listeners i.e.
 
Fields inherited from interface org.eclipse.ecf.discovery.IDiscoveryContainerAdapter
CONTAINER_CONNECT_REQUIRES_PASSWORD, CONTAINER_CONNECT_TARGET, CONTAINER_CONNECT_TARGET_PATH, CONTAINER_CONNECT_TARGET_PROTOCOL, CONTAINER_FACTORY_NAME_PROPERTY
 
Constructor Summary
AbstractDiscoveryContainerAdapter(java.lang.String aNamespaceName, DiscoveryContainerConfig aConfig)
           
 
Method Summary
 void addServiceListener(IServiceListener aListener)
          Add a service listener.
 void addServiceListener(IServiceTypeID aType, IServiceListener aListener)
          Add a service listener.
 void addServiceTypeListener(IServiceTypeListener aListener)
          Add a service type listener.
protected  void clearListeners()
           
 void dispose()
          Dispose this IContainer instance.
protected  void fireServiceDiscovered(IServiceEvent aServiceEvent)
          Calls IServiceListener.serviceDiscovered(IServiceEvent) for all registered IServiceListener
protected  void fireServiceTypeDiscovered(IServiceTypeEvent aServiceTypeEvent)
          Calls IServiceTypeListener.serviceTypeDiscovered(IServiceTypeEvent) for all registered IServiceTypeListener
protected  void fireServiceUndiscovered(IServiceEvent aServiceEvent)
          Calls IServiceListener.serviceUndiscovered(IServiceEvent) for all registered IServiceListener
protected  DiscoveryContainerConfig getConfig()
           
 Namespace getConnectNamespace()
          Get the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls to IContainer.connect(ID, IConnectContext).
 ID getID()
          Return the ID for this 'identifiable' object.
protected  java.util.Collection getListeners(IServiceTypeID aServiceType)
          Joins the Collection of IServiceListeners interested in any IServiceTypeID with the Collection of the IServiceListener registered for the given IServiceTypeID
 Namespace getServicesNamespace()
          Get a Namespace for services associated with this discovery container adapter.
 void removeServiceListener(IServiceListener aListener)
          Remove a service listener.
 void removeServiceListener(IServiceTypeID aType, IServiceListener aListener)
          Remove a service listener.
 void removeServiceTypeListener(IServiceTypeListener aListener)
          Remove a service type listener.
 
Methods inherited from class org.eclipse.ecf.core.AbstractContainer
addListener, fireContainerEvent, getAdapter, getPasswordFromConnectContext, removeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ecf.discovery.IDiscoveryContainerAdapter
getServiceInfo, getServices, getServices, getServiceTypes, registerService, unregisterService
 
Methods inherited from interface org.eclipse.ecf.core.IContainer
addListener, connect, disconnect, getAdapter, getConnectedID, removeListener
 

Field Detail

allServiceListeners

protected final java.util.Set allServiceListeners
Collection of service listeners i.e. Collection. NOTE: Access to this collection is synchronized, so subclasses should take this into account.


serviceListeners

protected final java.util.Map serviceListeners
Map of service type to collection of service listeners i.e. >. NOTE: Access to this map is synchronized, so subclasses should take this into account.


servicesNamespaceName

protected final java.lang.String servicesNamespaceName

serviceTypeListeners

protected final java.util.Collection serviceTypeListeners
Collection of service type listeners i.e. Collection. NOTE: Access to this collection is synchronized, so subclasses should take this into account.

Constructor Detail

AbstractDiscoveryContainerAdapter

public AbstractDiscoveryContainerAdapter(java.lang.String aNamespaceName,
                                         DiscoveryContainerConfig aConfig)
Parameters:
aNamespaceName -
aConfig -
Method Detail

addServiceListener

public void addServiceListener(IServiceListener aListener)
Description copied from interface: IDiscoveryContainerAdapter
Add a service listener. The given listener will have its method called when a service is discovered.

Specified by:
addServiceListener in interface IDiscoveryContainerAdapter
Parameters:
aListener - IServiceListener to be notified. Must not be null.

addServiceListener

public void addServiceListener(IServiceTypeID aType,
                               IServiceListener aListener)
Description copied from interface: IDiscoveryContainerAdapter
Add a service listener. The given listener will have its method called when a service with a type matching that specified by the first parameter is discovered.

Specified by:
addServiceListener in interface IDiscoveryContainerAdapter
Parameters:
aType - String type to listen for. Must not be null. Must be formatted according to this specific IDiscoveryContainer
aListener - IServiceListener to be notified. Must not be null.

addServiceTypeListener

public void addServiceTypeListener(IServiceTypeListener aListener)
Description copied from interface: IDiscoveryContainerAdapter
Add a service type listener. The given listener will have its method called when a service type is discovered.

Specified by:
addServiceTypeListener in interface IDiscoveryContainerAdapter
Parameters:
aListener - the listener to be notified. Must not be null.

clearListeners

protected void clearListeners()

dispose

public void dispose()
Description copied from interface: IContainer
Dispose this IContainer instance. The container instance will be made inactive after the completion of this method and will be unavailable for subsequent usage.

Specified by:
dispose in interface IContainer
Overrides:
dispose in class AbstractContainer

fireServiceDiscovered

protected void fireServiceDiscovered(IServiceEvent aServiceEvent)
Calls IServiceListener.serviceDiscovered(IServiceEvent) for all registered IServiceListener

Parameters:
aServiceEvent - The IServiceEvent to send along the call

fireServiceTypeDiscovered

protected void fireServiceTypeDiscovered(IServiceTypeEvent aServiceTypeEvent)
Calls IServiceTypeListener.serviceTypeDiscovered(IServiceTypeEvent) for all registered IServiceTypeListener

Parameters:
aServiceTypeEvent - The IServiceTypeEvent to send along the call

fireServiceUndiscovered

protected void fireServiceUndiscovered(IServiceEvent aServiceEvent)
Calls IServiceListener.serviceUndiscovered(IServiceEvent) for all registered IServiceListener

Parameters:
aServiceEvent - The IServiceEvent to send along the call

getConfig

protected DiscoveryContainerConfig getConfig()
Returns:
The DiscoveryContainerConfig of this IDiscoveryContainerAdapter

getConnectNamespace

public Namespace getConnectNamespace()
Description copied from interface: IContainer
Get the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls to IContainer.connect(ID, IConnectContext). If this method returns null, then it means that null is expected as a valid parameter in subsequent calls to IContainer.connect(ID, IConnectContext). If this method returns a non-null Namespace, then the targetID parameter in IContainer.connect(ID, IConnectContext) must be non-null instance created of the returned Namespace.

Specified by:
getConnectNamespace in interface IContainer
Returns:
Namespace the namespace associated with subsequent calls to IContainer.connect(ID, IConnectContext). If null, then the targetID instances passed to IContainer.connect(ID, IConnectContext) may be null. If not null, then targetID instances passed to IContainer.connect(ID, IConnectContext) must be instances of the returned Namespace.

getID

public ID getID()
Description copied from interface: IIdentifiable
Return the ID for this 'identifiable' object. The returned ID should be unique within its namespace. May return null.

Specified by:
getID in interface IIdentifiable
Returns:
the ID for this identifiable object. May return null.

getListeners

protected java.util.Collection getListeners(IServiceTypeID aServiceType)
Joins the Collection of IServiceListeners interested in any IServiceTypeID with the Collection of the IServiceListener registered for the given IServiceTypeID

Parameters:
aServiceType - The IServiceTypeID for which the IServiceListeners are returned
Returns:
All IServiceListeners interested in the given IServiceTypeID

getServicesNamespace

public Namespace getServicesNamespace()
Description copied from interface: IDiscoveryContainerAdapter
Get a Namespace for services associated with this discovery container adapter. The given Namespace may be used via ServiceIDFactory to create IServiceIDs rather than simple IDs. For example:
 IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(container.getServicesNamespace(),serviceType,serviceName);
 

Specified by:
getServicesNamespace in interface IDiscoveryContainerAdapter
Returns:
Namespace for creating service IDs. Will not be null.

removeServiceListener

public void removeServiceListener(IServiceListener aListener)
Description copied from interface: IDiscoveryContainerAdapter
Remove a service listener. Remove the listener from this container

Specified by:
removeServiceListener in interface IDiscoveryContainerAdapter
Parameters:
aListener - IServiceListener listener to be removed. Must not be null.

removeServiceListener

public void removeServiceListener(IServiceTypeID aType,
                                  IServiceListener aListener)
Description copied from interface: IDiscoveryContainerAdapter
Remove a service listener. Remove the listener associated with the type specified by the first parameter.

Specified by:
removeServiceListener in interface IDiscoveryContainerAdapter
Parameters:
aType - String of the desired type to remove the listener. Must not be null. Must be formatted according to this specific IDiscoveryContainer
aListener - IServiceListener listener to be removed. Must not be null.

removeServiceTypeListener

public void removeServiceTypeListener(IServiceTypeListener aListener)
Description copied from interface: IDiscoveryContainerAdapter
Remove a service type listener. Remove the type listener.

Specified by:
removeServiceTypeListener in interface IDiscoveryContainerAdapter
Parameters:
aListener - IServiceTypeListener to be removed. Must not be null.