org.eclipse.ecf.core
Class AbstractContainer

java.lang.Object
  extended by org.eclipse.ecf.core.AbstractContainer
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable, IContainer, IIdentifiable
Direct Known Subclasses:
AbstractClientContainer, AbstractDiscoveryContainerAdapter, BaseContainer, SOContainer

public abstract class AbstractContainer
extends java.lang.Object
implements IContainer

Abstract implementation of IContainer. Provides implementations of listener methods that subsclasses may use to avoid having to implement them themselves. This class may be subclassed as needed.


Constructor Summary
AbstractContainer()
           
 
Method Summary
 void addListener(IContainerListener l)
          Add listener to IContainer.
 void dispose()
          Dispose this IContainer instance.
protected  void fireContainerEvent(IContainerEvent event)
          Fires a container event
 java.lang.Object getAdapter(java.lang.Class serviceType)
          This specialization of IAdaptable.getAdapter() returns additional services supported by this container.
protected  java.lang.String getPasswordFromConnectContext(IConnectContext connectContext)
           
 void removeListener(IContainerListener l)
          Remove listener from IContainer.
 
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.core.IContainer
connect, disconnect, getConnectedID, getConnectNamespace
 
Methods inherited from interface org.eclipse.ecf.core.identity.IIdentifiable
getID
 

Constructor Detail

AbstractContainer

public AbstractContainer()
Method Detail

addListener

public void addListener(IContainerListener l)
Description copied from interface: IContainer
Add listener to IContainer. The listener's handleEvent method will be synchronously called when container methods are called. Minimally, the events delivered to the listener are as follows
container action Event
connect start IContainerConnectingEvent
connect complete IContainerConnectedEvent
disconnect start IContainerDisconnectingEvent
disconnect complete IContainerDisconnectedEvent

Specified by:
addListener in interface IContainer
Parameters:
l - the IContainerListener to add

removeListener

public void removeListener(IContainerListener l)
Description copied from interface: IContainer
Remove listener from IContainer.

Specified by:
removeListener in interface IContainer
Parameters:
l - the IContainerListener to remove

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

fireContainerEvent

protected void fireContainerEvent(IContainerEvent event)
Fires a container event

Parameters:
event -

getAdapter

public java.lang.Object getAdapter(java.lang.Class serviceType)
Description copied from interface: IContainer
This specialization of IAdaptable.getAdapter() returns additional services supported by this container. A container that supports additional services over and above the methods on IContainer should return them using this method. It is recommended that clients use this method rather than instanceof checks and downcasts to find out about the capabilities of a specific container.

Typically, after obtaining an IContainer, a client would use this method as a means to obtain a more meaningful interface to the container. This interface may or may not extend IContainer. For example, a client could use the following code to obtain an instance of ISharedObjectContainer:

 IContainer newContainer = ContainerFactory.createContainer(type);
 ISharedObjectContainer soContainer = (ISharedObjectContainer) newContainer
                .getAdapter(ISharedObjectContainer.class);
 if (soContainer == null)
        throw new ContainerCreateException(message);
 

Implementations of this method should delegate to IAdapterManager.loadAdapter() if the service cannot be provided directly to ensure extensibility by third-party plug-ins.

Specified by:
getAdapter in interface org.eclipse.core.runtime.IAdaptable
Specified by:
getAdapter in interface IContainer
Parameters:
serviceType - the service type to look up
Returns:
the service instance castable to the given class, or null if this container does not support the given service

getPasswordFromConnectContext

protected java.lang.String getPasswordFromConnectContext(IConnectContext connectContext)
                                                  throws ContainerConnectException
Throws:
ContainerConnectException