Package org.eclipse.ecf.core.provider
Class BaseContainerInstantiator
- java.lang.Object
-
- org.eclipse.ecf.core.provider.BaseContainerInstantiator
-
- All Implemented Interfaces:
IContainerInstantiator
- Direct Known Subclasses:
BaseContainer.Instantiator,BaseRemoteServiceContainerInstantiator,RemoteServiceContainerInstantiator,RestClientContainerInstantiator,ServletServerContainerInstantiator
public class BaseContainerInstantiator extends Object implements IContainerInstantiator
Default implementation ofIContainerInstantiator. ECF provider implementers may subclass as desired.
-
-
Field Summary
Fields Modifier and Type Field Description protected static Class[][]EMPTY_CLASS_ARRAYprotected static String[]EMPTY_STRING_ARRAYprotected static String[]NO_ADAPTERS_ARRAY
-
Constructor Summary
Constructors Constructor Description BaseContainerInstantiator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IContainercreateInstance(ContainerTypeDescription description, Object[] parameters)Create instance of IContainer.protected SetgetAdaptersForClass(Class clazz)protected IDgetIDParameterValue(Namespace ns, Map<String,?> parameters, String key)protected <T> IDgetIDParameterValue(Namespace ns, Map<String,?> parameters, String key, Class<T> type, T def)protected IDgetIDParameterValue(Namespace ns, Map<String,?> parameters, String key, String def)protected IntegergetIntegerFromArg(Object arg)protected String[]getInterfacesAndAdaptersForClass(Class clazz)protected SetgetInterfacesForClass(Class clazz)protected SetgetInterfacesForClass(Set s, Class clazz)protected Map<String,?>getMap(Object[] parameters)protected StringgetMapParameterString(Object[] parameters, String key)protected StringgetMapParameterString(Object[] parameters, String key, String def)protected <T> TgetParameterValue(Object[] parameters, String key, Class<T> clazz)protected <T> TgetParameterValue(Object[] parameters, String key, Class<T> clazz, T def)protected StringgetParameterValue(Map<String,?> parameters, String key)protected <T> TgetParameterValue(Map<String,?> parameters, String key, Class<T> clazz, T def)protected StringgetParameterValue(Map<String,?> parameters, String key, String def)protected StringgetStringFromArg(Object arg)String[]getSupportedAdapterTypes(ContainerTypeDescription description)Get array of supported adapters for the given container type description.String[]getSupportedIntents(ContainerTypeDescription description)Class[][]getSupportedParameterTypes(ContainerTypeDescription description)Get array of parameter types for given container type description.
-
-
-
Method Detail
-
getIntegerFromArg
protected Integer getIntegerFromArg(Object arg)
- Parameters:
arg- object to get Integer from- Returns:
- Integer created from Object arg
- Since:
- 3.6
-
getStringFromArg
protected String getStringFromArg(Object arg)
- Parameters:
arg- object to get String from- Returns:
- String created from Object arg
- Since:
- 3.6
-
getMap
protected Map<String,?> getMap(Object[] parameters)
- Parameters:
parameters- parameters to get Map from- Returns:
- Map from first of parameters that is instance of Map
- Since:
- 3.6
-
getParameterValue
protected <T> T getParameterValue(Map<String,?> parameters, String key, Class<T> clazz, T def)
- Type Parameters:
T- the expected value type- Parameters:
parameters- 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 benull- Returns:
- T value from parameters with key and of type clazz
- Since:
- 3.6
-
getParameterValue
protected String getParameterValue(Map<String,?> parameters, String key, String def)
- Parameters:
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 benull- Returns:
- String value from parameters with key
- Since:
- 3.6
-
getParameterValue
protected String getParameterValue(Map<String,?> parameters, String key)
- Parameters:
parameters- Map parameters to get value fromkey- the key to use to get value from parameters- Returns:
- String value from parameters with key
- Since:
- 3.6
-
getIDParameterValue
protected <T> ID getIDParameterValue(Namespace ns, Map<String,?> parameters, String key, Class<T> type, T def)
- Type Parameters:
T- the expected value type- Parameters:
ns- namespace to use for ID creation. Must not benullparameters- 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 null- Returns:
- ID the created ID
- Since:
- 3.8
-
getIDParameterValue
protected ID getIDParameterValue(Namespace ns, Map<String,?> parameters, String key, String def)
- Parameters:
ns- namespace to use for ID creation. Must not benullparameters- 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 null- Returns:
- ID the created ID
- Since:
- 3.8
-
getIDParameterValue
protected ID getIDParameterValue(Namespace ns, Map<String,?> parameters, String key)
- Parameters:
ns- namespace to use for ID creation. Must not benullparameters- Map parameters to get value fromkey- the key to use to get value from parameters- Returns:
- ID the created ID
- Since:
- 3.8
-
getParameterValue
protected <T> T getParameterValue(Object[] parameters, String key, Class<T> clazz, T def)
- Type Parameters:
T- the expected value type- Parameters:
parameters- 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 isnull- Returns:
- T the parameter value with key from Map
- Since:
- 3.6
-
getParameterValue
protected <T> T getParameterValue(Object[] parameters, String key, Class<T> clazz)
- Type Parameters:
T- the expected value type- Parameters:
parameters- parameters assumed to contain a Mapkey- key to use to get parameter value from Mapclazz- the expected type of the value from Map- Returns:
- T the parameter value with key from Map
- Since:
- 3.6
-
getMapParameterString
protected String getMapParameterString(Object[] parameters, String key, String def)
- Parameters:
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 isnull- Returns:
- Sting the parameter value with key from Map
- Since:
- 3.6
-
getMapParameterString
protected String getMapParameterString(Object[] parameters, String key)
- Parameters:
parameters- parameters assumed to contain a Mapkey- key to use to get parameter value from Map- Returns:
- Sting the parameter value with key from Map
- Since:
- 3.6
-
createInstance
public IContainer createInstance(ContainerTypeDescription description, Object[] parameters) throws ContainerCreateException
Description copied from interface:IContainerInstantiatorCreate instance of IContainer. This is the interface that container provider implementations must implement for the containerFactory extension point. The caller may optionally specify both argument types and arguments that will be passed into this method (and therefore to the provider implementation implementing this method). For example:ContainerFactory.getDefault().createContainer("foocontainer",new Object { "hello" });
- Specified by:
createInstancein interfaceIContainerInstantiator- Parameters:
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(...)- Returns:
- IContainer instance. The provider implementation must return a valid object implementing IContainer OR throw a ContainerCreateException. Null will not be returned.
- Throws:
ContainerCreateException- thrown if instance cannot be created
-
getSupportedAdapterTypes
public String[] getSupportedAdapterTypes(ContainerTypeDescription description)
Description copied from interface:IContainerInstantiatorGet array of supported adapters for the given container type description. Providers implement this method to allow clients to inspect the adapter types exposed by the container described by the given description. The returned array entries will be the fully qualified names of the adapter classes. Note that the returned types do not guarantee that a subsequent call toIContainer.getAdapter(Class)with the same type name as a returned value will return a non-nullresult. In other words, even if the class name is in the returned array, subsequent calls toIContainer.getAdapter(Class)may still returnnull.- Specified by:
getSupportedAdapterTypesin interfaceIContainerInstantiator- Parameters:
description- the ContainerTypeDescription to report adapters for. Must not benull.- Returns:
- String[] of supported adapters. The entries in the returned array
will be the fully qualified class names of adapters supported by
the given description.
nullmay be returned by the provider if no adapters are supported for this description.
-
getSupportedParameterTypes
public Class[][] getSupportedParameterTypes(ContainerTypeDescription description)
Description copied from interface:IContainerInstantiatorGet array of parameter types for given container type description. Providers implement this method to allow clients to inspect the available set of parameter types understood for calls toIContainerInstantiator.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 intoIContainerInstantiator.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" });- Specified by:
getSupportedParameterTypesin interfaceIContainerInstantiator- Parameters:
description- the ContainerTypeDescription to return parameter types for- Returns:
- Class[][] array of Class[]s. Each row in the table corresponds to
a Class[] that describes the types of Objects in Object[] for
second parameter to
IContainerInstantiator.createInstance(ContainerTypeDescription, Object[]).nullreturned if no parameter types supported for given description.
-
getSupportedIntents
public String[] getSupportedIntents(ContainerTypeDescription description)
- Specified by:
getSupportedIntentsin interfaceIContainerInstantiator
-
-