public class BaseContainerInstantiator extends java.lang.Object implements IContainerInstantiator
IContainerInstantiator
. ECF provider implementers
may subclass as desired.Modifier and Type | Field and Description |
---|---|
protected static java.lang.Class[][] |
EMPTY_CLASS_ARRAY |
protected static java.lang.String[] |
EMPTY_STRING_ARRAY |
protected static java.lang.String[] |
NO_ADAPTERS_ARRAY |
Constructor and Description |
---|
BaseContainerInstantiator() |
Modifier and Type | Method and Description |
---|---|
IContainer |
createInstance(ContainerTypeDescription description,
java.lang.Object[] parameters)
Create instance of IContainer.
|
protected java.util.Set |
getAdaptersForClass(java.lang.Class clazz) |
protected ID |
getIDParameterValue(Namespace ns,
java.util.Map<java.lang.String,?> parameters,
java.lang.String key) |
protected <T> ID |
getIDParameterValue(Namespace ns,
java.util.Map<java.lang.String,?> parameters,
java.lang.String key,
java.lang.Class<T> type,
T def) |
protected ID |
getIDParameterValue(Namespace ns,
java.util.Map<java.lang.String,?> parameters,
java.lang.String key,
java.lang.String def) |
protected java.lang.Integer |
getIntegerFromArg(java.lang.Object arg) |
protected java.lang.String[] |
getInterfacesAndAdaptersForClass(java.lang.Class clazz) |
protected java.util.Set |
getInterfacesForClass(java.lang.Class clazz) |
protected java.util.Set |
getInterfacesForClass(java.util.Set s,
java.lang.Class clazz) |
protected java.util.Map<java.lang.String,?> |
getMap(java.lang.Object[] parameters) |
protected java.lang.String |
getMapParameterString(java.lang.Object[] parameters,
java.lang.String key) |
protected java.lang.String |
getMapParameterString(java.lang.Object[] parameters,
java.lang.String key,
java.lang.String def) |
protected java.lang.String |
getParameterValue(java.util.Map<java.lang.String,?> parameters,
java.lang.String key) |
protected <T> T |
getParameterValue(java.util.Map<java.lang.String,?> parameters,
java.lang.String key,
java.lang.Class<T> clazz,
T def) |
protected java.lang.String |
getParameterValue(java.util.Map<java.lang.String,?> parameters,
java.lang.String key,
java.lang.String def) |
protected <T> T |
getParameterValue(java.lang.Object[] parameters,
java.lang.String key,
java.lang.Class<T> clazz) |
protected <T> T |
getParameterValue(java.lang.Object[] parameters,
java.lang.String key,
java.lang.Class<T> clazz,
T def) |
protected java.lang.String |
getStringFromArg(java.lang.Object arg) |
java.lang.String[] |
getSupportedAdapterTypes(ContainerTypeDescription description)
Get array of supported adapters for the given container type description.
|
java.lang.String[] |
getSupportedIntents(ContainerTypeDescription description) |
java.lang.Class[][] |
getSupportedParameterTypes(ContainerTypeDescription description)
Get array of parameter types for given container type description.
|
protected static java.lang.String[] NO_ADAPTERS_ARRAY
protected static java.lang.String[] EMPTY_STRING_ARRAY
protected static java.lang.Class[][] EMPTY_CLASS_ARRAY
protected java.lang.Integer getIntegerFromArg(java.lang.Object arg)
arg
- object to get Integer fromprotected java.lang.String getStringFromArg(java.lang.Object arg)
arg
- object to get String fromprotected java.util.Set getAdaptersForClass(java.lang.Class clazz)
protected java.util.Set getInterfacesForClass(java.util.Set s, java.lang.Class clazz)
protected java.util.Set getInterfacesForClass(java.lang.Class clazz)
protected java.lang.String[] getInterfacesAndAdaptersForClass(java.lang.Class clazz)
protected java.util.Map<java.lang.String,?> getMap(java.lang.Object[] parameters)
parameters
- parameters to get Map fromprotected <T> T getParameterValue(java.util.Map<java.lang.String,?> parameters, java.lang.String key, java.lang.Class<T> clazz, T def)
T
- the expected value typeparameters
- Map parameters to get value fromkey
- the key to use to get value from parametersclazz
- the expected type of the value accessed by keydef
- the default of the value accessed by key. May be null
protected java.lang.String getParameterValue(java.util.Map<java.lang.String,?> parameters, java.lang.String key, java.lang.String def)
parameters
- Map parameters to get value fromkey
- the key to use to get value from parametersdef
- the default of the value accessed by key. May be null
protected java.lang.String getParameterValue(java.util.Map<java.lang.String,?> parameters, java.lang.String key)
parameters
- Map parameters to get value fromkey
- the key to use to get value from parametersprotected <T> ID getIDParameterValue(Namespace ns, java.util.Map<java.lang.String,?> parameters, java.lang.String key, java.lang.Class<T> type, T def)
T
- the expected value typens
- namespace to use for ID creation. Must not be null
parameters
- Map parameters to get value fromkey
- the key to use to get value from parameterstype
- the expected type of the value from parametersdef
- a default value to use if value from parameters is nullprotected ID getIDParameterValue(Namespace ns, java.util.Map<java.lang.String,?> parameters, java.lang.String key, java.lang.String def)
ns
- namespace to use for ID creation. Must not be null
parameters
- Map parameters to get value fromkey
- the key to use to get value from parametersdef
- a default String value to use if value from parameters is nullprotected ID getIDParameterValue(Namespace ns, java.util.Map<java.lang.String,?> parameters, java.lang.String key)
ns
- namespace to use for ID creation. Must not be null
parameters
- Map parameters to get value fromkey
- the key to use to get value from parametersprotected <T> T getParameterValue(java.lang.Object[] parameters, java.lang.String key, java.lang.Class<T> clazz, T def)
T
- the expected value typeparameters
- parameters assumed to contain a Mapkey
- key to use to get parameter value from Mapclazz
- the expected type of the value from Mapdef
- a default value to use if value from Map is null
protected <T> T getParameterValue(java.lang.Object[] parameters, java.lang.String key, java.lang.Class<T> clazz)
T
- the expected value typeparameters
- parameters assumed to contain a Mapkey
- key to use to get parameter value from Mapclazz
- the expected type of the value from Mapprotected java.lang.String getMapParameterString(java.lang.Object[] parameters, java.lang.String key, java.lang.String def)
parameters
- parameters assumed to contain a Mapkey
- key to use to get parameter value from Mapdef
- a default String value to use if value from Map is null
protected java.lang.String getMapParameterString(java.lang.Object[] parameters, java.lang.String key)
parameters
- parameters assumed to contain a Mapkey
- key to use to get parameter value from Mappublic IContainer createInstance(ContainerTypeDescription description, java.lang.Object[] parameters) throws ContainerCreateException
IContainerInstantiator
ContainerFactory.getDefault().createContainer("foocontainer",new Object { "hello" });
createInstance
in interface IContainerInstantiator
description
- the ContainerTypeDescription associated with the registered
container provider implementationparameters
- parameters specified by the caller. May be null if no
parameters are passed in by caller to
ContainerFactory.getDefault().createContainer(...)ContainerCreateException
- thrown if instance cannot be createdpublic java.lang.String[] getSupportedAdapterTypes(ContainerTypeDescription description)
IContainerInstantiator
IContainer.getAdapter(Class)
with the same type name as a
returned value will return a non-null
result. In other
words, even if the class name is in the returned array, subsequent calls
to IContainer.getAdapter(Class)
may still return
null
.getSupportedAdapterTypes
in interface IContainerInstantiator
description
- the ContainerTypeDescription to report adapters for. Must not
be null
.null
may be returned by
the provider if no adapters are supported for this description.public java.lang.Class[][] getSupportedParameterTypes(ContainerTypeDescription description)
IContainerInstantiator
IContainerInstantiator.createInstance(ContainerTypeDescription, Object[])
.
Each of the rows of the returned array specifies a Class[] of parameter
types. These parameter types correspond to the types of Object[] that can
be passed into the second parameter of
IContainerInstantiator.createInstance(ContainerTypeDescription, Object[])
.
Consider the following example:
public Class[][] getSupportedParameterTypes() { return new Class[][] { { String.class }, { String.class, String.class } }; }The above means that there are two acceptable values for the Object [] passed into
IContainerInstantiator.createInstance(ContainerTypeDescription, Object[])
:
1) a single String, and 2) two Strings. These would therefore be
acceptable as input to createInstance:
IContainer container = ContainerFactory.getDefault().createContainer( description, new Object[] { "Hello" }); IContainer container2 = ContainerFactory.getDefault().createContainer( description, new Object[] { "Hello" });
getSupportedParameterTypes
in interface IContainerInstantiator
description
- the ContainerTypeDescription to return parameter types forIContainerInstantiator.createInstance(ContainerTypeDescription, Object[])
.
null
returned if no parameter types supported for
given description.public java.lang.String[] getSupportedIntents(ContainerTypeDescription description)
getSupportedIntents
in interface IContainerInstantiator