Package org.eclipse.ecf.core

## Interface IContainerManager

All Known Implementing Classes:
  `ContainerFactory`

    public interface IContainerManager

Container manager for getting access to existing container instances previously created via `IContainerFactory`.

### Method Summary

All Methods Instance Methods Abstract Methods
`IContainer` `addContainer​(IContainer container, ContainerTypeDescription typeDescription)` Add given container to manager.
`boolean` `addListener​(IContainerManagerListener listener)` Add listener to this `IContainerManager`.
`IContainer[]` `getAllContainers()` Get all containers known to this container manager.
`IContainer` `getContainer​(ID containerID)` Get container for given ID.
`IContainerFactory` `getContainerFactory()` Get container factory associated with this container manager.
`ContainerTypeDescription` `getContainerTypeDescription​(ID containerID)` Get the container type description used to create the container with the given ID.
`boolean` `hasContainer​(ID containerID)` Return true if this container manager has the given container under management, false otherwise.
`void` `removeAllContainers()` Remove all containers from this manager
`IContainer` `removeContainer​(IContainer container)` Remove given container from manager.
`IContainer` `removeContainer​(ID containerID)` Remove given container from manager.
`boolean` `removeListener​(IContainerManagerListener listener)` Remove listener from this `IContainerManager`.

### Method Detail

#### getContainerFactory

    IContainerFactory getContainerFactory()

Get container factory associated with this container manager.

Returns:
  IContainerFactory. Will not return `null`.
Since:
  3.0

#### getContainer

    IContainer getContainer​(ID containerID)

Get container for given ID. If `containerID` is `null` then `null` will be returned. If active container with given `containerID,` is not known to this container manager, then `null` will also be returned.

Parameters:
  `containerID` - the ID of the container instance to retrieve from this manager. If `null` `null` will be returned.
Returns:
  IContainer instance with given `containerID`. Will be `null` if there is no container with given ID known to this container manager.

#### getContainerTypeDescription

    ContainerTypeDescription getContainerTypeDescription​(ID containerID)

Get the container type description used to create the container with the given ID.

Parameters:
  `containerID` - the ID of the container to get the description for.
Returns:
  ContainerTypeDescription for the container with the given ID. Will return `null` if no container with the given containerID exists under this manager.

#### getAllContainers

    IContainer[] getAllContainers()

Get all containers known to this container manager.

Returns:
  IContainer[] of active container instances known to this container manager. Will not return `null`, but may return empty IContainer[].

#### hasContainer

    boolean hasContainer​(ID containerID)

Return true if this container manager has the given container under management, false otherwise.

Parameters:
  `containerID` - the ID of the container to find. If `null` this method returns false.
Returns:
  true if this container manager has the given container under management, false otherwise.

#### addContainer

    IContainer addContainer​(IContainer container,
                            ContainerTypeDescription typeDescription)

Add given container to manager.

Parameters:
  `container` - to add. Must not be `null`. Also `container.getID()` must return a non-`null` value. If `container.getID()` returns `null` then this method will throw a `NullPointerException`.
  `typeDescription` - the container type description used to create the given container. Must not be `null`.
Returns:
  IContainer previously added (with same ID).

#### removeContainer

    IContainer removeContainer​(IContainer container)

Remove given container from manager.

Parameters:
  `container` - the container to remove. Must not be `null`.
Returns:
  IContainer instance removed. If no instance with same ID is found then `null` will be returned.

#### removeContainer

    IContainer removeContainer​(ID containerID)

Remove given container from manager.

Parameters:
  `containerID` - the ID of the container to remove. Must not be `null`.
Returns:
  IContainer instance removed. If no instance with same ID is found then `null` will be returned.
Since:
  3.0

#### addListener

    boolean addListener​(IContainerManagerListener listener)

Add listener to this `IContainerManager`.

Parameters:
  `listener` - the listener to add. Must not be `null`.
Returns:
  true if listener successfully added

#### removeListener

    boolean removeListener​(IContainerManagerListener listener)

Remove listener from this `IContainerManager`.

Parameters:
  `listener` - the listener to remove. Must not be `null`.
Returns:
  true if listener successfully removed

#### removeAllContainers

    void removeAllContainers()

Remove all containers from this manager

Since:
  3.0