Package org.eclipse.ecf.core
Class ContainerFactory
- java.lang.Object
-
- org.eclipse.ecf.core.ContainerFactory
-
- All Implemented Interfaces:
IContainerFactory
,IContainerManager
public class ContainerFactory extends Object implements IContainerFactory, IContainerManager
Factory for creatingIContainer
instances. This class provides ECF clients an entry point to constructingIContainer
instances.
Here is an example use of the ContainerFactory to construct an instance of the 'standalone' container (has no connection to other containers):
IContainer container =
For more details on the creation and lifecycle of IContainer instances created via this factory see
ContainerFactory.getDefault().createContainer("ecf.generic.client");
...further use of container here...IContainer
.- Since:
- 3.1
- See Also:
IContainer
,IContainerFactory
-
-
Field Summary
Fields Modifier and Type Field Description static String
BASE_CONTAINER_NAME
-
Constructor Summary
Constructors Modifier Constructor Description protected
ContainerFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description IContainer
addContainer(IContainer container, ContainerTypeDescription typeDescription)
Add given container to manager.ContainerTypeDescription
addDescription(ContainerTypeDescription containerTypeDescription)
Add a ContainerTypeDescription to the set of known ContainerDescriptions.protected ContainerTypeDescription
addDescription0(ContainerTypeDescription containerTypeDescription)
boolean
addListener(IContainerManagerListener listener)
Add listener to thisIContainerManager
.boolean
containsDescription(ContainerTypeDescription containerTypeDescription)
Check to see if a given named description is already contained by this factoryprotected boolean
containsDescription0(ContainerTypeDescription containerTypeDescription)
IContainer
createContainer()
Make a base IContainer instance.IContainer
createContainer(String containerTypeDescriptionName)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, Object[] parameters)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, String containerId)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, String containerId, Object[] parameters)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, String containerId, Map parameters)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, Map parameters)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, ID containerID)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, ID containerID, Object[] parameters)
Create a new container.IContainer
createContainer(String containerTypeDescriptionName, ID containerID, Map parameters)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, Object[] parameters)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, String containerId)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, String containerId, Object[] parameters)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, String containerId, Map parameters)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, Map parameters)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, ID containerID)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, ID containerID, Object[] parameters)
Create a new container.IContainer
createContainer(ContainerTypeDescription containerTypeDescription, ID containerID, Map parameters)
Create a new container.IContainer
createContainer(ID containerID)
Create a new container.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.static IContainerFactory
getDefault()
protected ContainerTypeDescription
getDescription0(String containerTypeDescriptionName)
protected ContainerTypeDescription
getDescription0(ContainerTypeDescription containerTypeDescription)
ContainerTypeDescription
getDescriptionByName(String containerTypeDescriptionName)
Get the known ContainerTypeDescription given it's name.List
getDescriptions()
Get a collection of the ContainerDescriptions currently known to this factory.protected List
getDescriptions0()
ContainerTypeDescription[]
getDescriptionsForContainerAdapter(Class containerAdapter)
Get container type descriptions that support the given containerAdapterboolean
hasContainer(ID containerID)
Return true if this container manager has the given container under management, false otherwise.void
removeAllContainers()
Remove all containers from this managerIContainer
removeContainer(IContainer container)
Remove given container from manager.IContainer
removeContainer(ID containerID)
Remove given container from manager.ContainerTypeDescription
removeDescription(ContainerTypeDescription containerTypeDescription)
Remove given description from set known to this factory.protected ContainerTypeDescription
removeDescription0(ContainerTypeDescription containerTypeDescription)
boolean
removeListener(IContainerManagerListener listener)
Remove listener from thisIContainerManager
.protected void
throwContainerCreateException(String message, Throwable cause, String method)
-
-
-
Field Detail
-
BASE_CONTAINER_NAME
public static final String BASE_CONTAINER_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
getDefault
public static IContainerFactory getDefault()
-
addDescription
public ContainerTypeDescription addDescription(ContainerTypeDescription containerTypeDescription)
Description copied from interface:IContainerFactory
Add a ContainerTypeDescription to the set of known ContainerDescriptions.- Specified by:
addDescription
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to add to this factory. Must not benull
.- Returns:
- ContainerTypeDescription the old description of the same name, null if none found
-
getDescriptions
public List getDescriptions()
Description copied from interface:IContainerFactory
Get a collection of the ContainerDescriptions currently known to this factory. This allows clients to query the factory to determine what if any other ContainerDescriptions are currently registered with the factory, and if so, what they are.- Specified by:
getDescriptions
in interfaceIContainerFactory
- Returns:
- List of ContainerTypeDescription instances
-
getDescriptions0
protected List getDescriptions0()
-
addDescription0
protected ContainerTypeDescription addDescription0(ContainerTypeDescription containerTypeDescription)
-
containsDescription
public boolean containsDescription(ContainerTypeDescription containerTypeDescription)
Description copied from interface:IContainerFactory
Check to see if a given named description is already contained by this factory- Specified by:
containsDescription
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to look for- Returns:
- true if description is already known to factory, false otherwise
-
containsDescription0
protected boolean containsDescription0(ContainerTypeDescription containerTypeDescription)
-
getDescription0
protected ContainerTypeDescription getDescription0(ContainerTypeDescription containerTypeDescription)
-
getDescription0
protected ContainerTypeDescription getDescription0(String containerTypeDescriptionName)
-
getDescriptionByName
public ContainerTypeDescription getDescriptionByName(String containerTypeDescriptionName)
Description copied from interface:IContainerFactory
Get the known ContainerTypeDescription given it's name.- Specified by:
getDescriptionByName
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the name to use as key to find ContainerTypeDescription. Must not benull
.- Returns:
- ContainerTypeDescription found. Null if not found.
-
removeDescription
public ContainerTypeDescription removeDescription(ContainerTypeDescription containerTypeDescription)
Description copied from interface:IContainerFactory
Remove given description from set known to this factory.- Specified by:
removeDescription
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to remove- Returns:
- the removed ContainerTypeDescription, null if nothing removed
-
removeDescription0
protected ContainerTypeDescription removeDescription0(ContainerTypeDescription containerTypeDescription)
-
getDescriptionsForContainerAdapter
public ContainerTypeDescription[] getDescriptionsForContainerAdapter(Class containerAdapter)
Description copied from interface:IContainerFactory
Get container type descriptions that support the given containerAdapter- Specified by:
getDescriptionsForContainerAdapter
in interfaceIContainerFactory
- Parameters:
containerAdapter
- the container adapter. Must not be null.- Returns:
- ContainerTypeDescription[] of descriptions that support the given container adapter. If no ContainerTypeDescriptions found that support the given adapter, an empty array will be returned.
-
throwContainerCreateException
protected void throwContainerCreateException(String message, Throwable cause, String method) throws ContainerCreateException
- Throws:
ContainerCreateException
-
createContainer
public IContainer createContainer() throws ContainerCreateException
Description copied from interface:IContainerFactory
Make a base IContainer instance.- Specified by:
createContainer
in interfaceIContainerFactory
- Returns:
- IContainer instance. A non-
null
instance will be returned. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(ID containerID) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerID
- the container's new ID. Must not benull
.- Returns:
- IContainer instance. A non-
null
. instance will be returned. - Throws:
ContainerCreateException
- if some problem creating a base IContainer instance.
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use. Must not benull
.- Returns:
- a valid instance of IContainer. Will not be
null
. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.- Returns:
- a valid instance of IContainer. Will not be
null
. - Throws:
ContainerCreateException
- if cannot create container of given name
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.parameters
- an Object [] of parameters passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer. A non-
null
instance will be returned. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.parameters
- the Object [] of parameters passed to the IContainerInstantiator.createInstance method. May benull
.- Returns:
- a valid instance of IContainer. Will not be
null
. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, ID containerID, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.containerID
- the container's new ID. May benull
.parameters
- an Object [] of parameters passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, ID containerID, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.containerID
- the new container's id. May benull
.parameters
- the Object [] of parameters passed to the IContainerInstantiator.createInstance method. May benull
.- Returns:
- a valid instance of IContainer. Will not be
null
. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, ID containerID) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to lookup. Must not benull
.containerID
- the new container's id. May benull
.- Returns:
- a valid instance of IContainer. Will not be
null
. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, ID containerID) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.containerID
- the new container's id. May benull
.- Returns:
- a valid instance of IContainer. Will not be
null
. - Throws:
ContainerCreateException
- if some problem creating the instance.
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, String containerId) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to use to create the instance. Must not benull
.containerId
- the container's new ID. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, String containerId, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to use to create the instance. Must not benull
.containerId
- the container's new ID. May benull
.parameters
- an Object [] of parameters passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, String containerId) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.containerId
- the container's new ID. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, String containerId, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.containerId
- the container's new ID. May benull
.parameters
- an Object [] of parameters passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
getAllContainers
public IContainer[] getAllContainers()
Description copied from interface:IContainerManager
Get all containers known to this container manager.- Specified by:
getAllContainers
in interfaceIContainerManager
- Returns:
- IContainer[] of active container instances known to this
container manager. Will not return
null
, but may return empty IContainer[].
-
getContainer
public IContainer getContainer(ID containerID)
Description copied from interface:IContainerManager
Get container for given ID. IfcontainerID
isnull
thennull
will be returned. If active container with givencontainerID,
is not known to this container manager, thennull
will also be returned.- Specified by:
getContainer
in interfaceIContainerManager
- Parameters:
containerID
- the ID of the container instance to retrieve from this manager. Ifnull
null
will be returned.- Returns:
- IContainer instance with given
containerID
. Will benull
if there is no container with given ID known to this container manager.
-
hasContainer
public boolean hasContainer(ID containerID)
Description copied from interface:IContainerManager
Return true if this container manager has the given container under management, false otherwise.- Specified by:
hasContainer
in interfaceIContainerManager
- Parameters:
containerID
- the ID of the container to find. Ifnull
this method returns false.- Returns:
- true if this container manager has the given container under management, false otherwise.
-
addListener
public boolean addListener(IContainerManagerListener listener)
Description copied from interface:IContainerManager
Add listener to thisIContainerManager
.- Specified by:
addListener
in interfaceIContainerManager
- Parameters:
listener
- the listener to add. Must not benull
.- Returns:
- true if listener successfully added
-
removeListener
public boolean removeListener(IContainerManagerListener listener)
Description copied from interface:IContainerManager
Remove listener from thisIContainerManager
.- Specified by:
removeListener
in interfaceIContainerManager
- Parameters:
listener
- the listener to remove. Must not benull
.- Returns:
- true if listener successfully removed
-
addContainer
public IContainer addContainer(IContainer container, ContainerTypeDescription typeDescription)
Description copied from interface:IContainerManager
Add given container to manager.- Specified by:
addContainer
in interfaceIContainerManager
- Parameters:
container
- to add. Must not benull
. Alsocontainer.getID()
must return a non-null
value. Ifcontainer.getID()
returnsnull
then this method will throw aNullPointerException
.typeDescription
- the container type description used to create the given container. Must not benull
.- Returns:
- IContainer previously added (with same ID).
-
removeContainer
public IContainer removeContainer(IContainer container)
Description copied from interface:IContainerManager
Remove given container from manager.- Specified by:
removeContainer
in interfaceIContainerManager
- Parameters:
container
- the container to remove. Must not benull
.- Returns:
- IContainer instance removed. If no instance with same ID is found
then
null
will be returned.
-
removeContainer
public IContainer removeContainer(ID containerID)
Description copied from interface:IContainerManager
Remove given container from manager.- Specified by:
removeContainer
in interfaceIContainerManager
- Parameters:
containerID
- the ID of the container to remove. Must not benull
.- Returns:
- IContainer instance removed. If no instance with same ID is found
then
null
will be returned.
-
getContainerTypeDescription
public ContainerTypeDescription getContainerTypeDescription(ID containerID)
Description copied from interface:IContainerManager
Get the container type description used to create the container with the given ID.- Specified by:
getContainerTypeDescription
in interfaceIContainerManager
- 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.
-
getContainerFactory
public IContainerFactory getContainerFactory()
Description copied from interface:IContainerManager
Get container factory associated with this container manager.- Specified by:
getContainerFactory
in interfaceIContainerManager
- Returns:
- IContainerFactory. Will not return
null
.
-
removeAllContainers
public void removeAllContainers()
Description copied from interface:IContainerManager
Remove all containers from this manager- Specified by:
removeAllContainers
in interfaceIContainerManager
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, ID containerID, Map parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.containerID
- the container's new ID. Must not benull
.parameters
- a Map of parameters (name/value pairs) passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, String containerId, Map parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.containerId
- the container's new ID. May benull
.parameters
- a Map of parameters (name/value pairs) passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, ID containerID, Map parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.containerID
- the container's new ID. May benull
.parameters
- a Map of parameters (name/value pairs) passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, String containerId, Map parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.containerId
- the container's new ID. May benull
.parameters
- a Map of parameters (name/value pairs) passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(ContainerTypeDescription containerTypeDescription, Map parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescription
- the ContainerTypeDescription to use to create the instance. Must not benull
.parameters
- a Map of parameters (name/value pairs) passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
createContainer
public IContainer createContainer(String containerTypeDescriptionName, Map parameters) throws ContainerCreateException
Description copied from interface:IContainerFactory
Create a new container.- Specified by:
createContainer
in interfaceIContainerFactory
- Parameters:
containerTypeDescriptionName
- the ContainerTypeDescription name to lookup. Must not benull
.parameters
- a Map of parameters (name/value pairs) passed to the createInstance method of the IContainerInstantiator. May benull
.- Returns:
- a valid instance of IContainer
- Throws:
ContainerCreateException
- if some problem creating the instance.- Since:
- 3.1
-
-