org.eclipse.ecf.core.provider

## Class BaseRemoteServiceContainerInstantiator

- java.lang.Object
- - org.eclipse.ecf.core.provider.BaseContainerInstantiator
  - - org.eclipse.ecf.core.provider.BaseRemoteServiceContainerInstantiator

All Implemented Interfaces:
  IContainerInstantiator, IRemoteServiceContainerInstantiator

    public class BaseRemoteServiceContainerInstantiator
    extends BaseContainerInstantiator
    implements IRemoteServiceContainerInstantiator

Default implementation of `IRemoteServiceContainerInstantiator`. ECF provider implementers may subclass as desired.

Since:
  3.1

### Field Summary

### Fields inherited from class org.eclipse.ecf.core.provider.BaseContainerInstantiator

`EMPTY_CLASS_ARRAY, EMPTY_STRING_ARRAY, NO_ADAPTERS_ARRAY`

### Constructor Summary

Constructors
Constructor and Description
`BaseRemoteServiceContainerInstantiator()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String[]` `getImportedConfigs(ContainerTypeDescription description, String[] exporterSupportedConfigs)` Get the imported config types for a given ContainerTypeDescription for the given exporter supported config types.
`Dictionary` `getPropertiesForImportedConfigs(ContainerTypeDescription description, String[] importedConfigTypes, Dictionary exportedProperties)` Get the properties associated with the given description, with the given importedConfigTypes, via the given exportedProperties.
`String[]` `getSupportedConfigs(ContainerTypeDescription description)` Get supported configs for the given ContainerTypeDescription.

### Methods inherited from class org.eclipse.ecf.core.provider.BaseContainerInstantiator

`createInstance, getAdaptersForClass, getIDParameterValue, getIDParameterValue, getIDParameterValue, getIntegerFromArg, getInterfacesAndAdaptersForClass, getInterfacesForClass, getInterfacesForClass, getMap, getMapParameterString, getMapParameterString, getParameterValue, getParameterValue, getParameterValue, getParameterValue, getParameterValue, getStringFromArg, getSupportedAdapterTypes, getSupportedIntents, getSupportedParameterTypes`

### 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.provider.IRemoteServiceContainerInstantiator

`getSupportedIntents`

### Constructor Detail

#### BaseRemoteServiceContainerInstantiator

    public BaseRemoteServiceContainerInstantiator()

### Method Detail

#### getSupportedConfigs

    public String[] getSupportedConfigs(ContainerTypeDescription description)

Description copied from interface: `IRemoteServiceContainerInstantiator`
Get supported configs for the given ContainerTypeDescription. This method will be called to determine what the OSGi remote service supported config types are for the given description during the search for the service exporter provider/containers upon remote service registration.

Specified by:
  `getSupportedConfigs` in interface `IRemoteServiceContainerInstantiator`
Parameters:
  `description` - the ContainerTypeDescription to return the supported configs for. Will not be `null`.
Returns:
  String[] the supported config types. `null` may be returned if the given description does not support any config types.

#### getImportedConfigs

    public String[] getImportedConfigs(ContainerTypeDescription description,
                                       String[] exporterSupportedConfigs)

Description copied from interface: `IRemoteServiceContainerInstantiator`

Get the imported config types for a given ContainerTypeDescription for the given exporter supported config types. This method will be called to determine what the local container imported configs are for the given description and exporterSupportedConfigTypes. The local provider can decide which (if any) imported config types should be returned and return them.

As an example, consider the config types for the ECF generic provider. A generic server has a config type of 'ecf.generic.server', and the client has 'ecf.generic.server'. If the generic server exports a given service, the exportersSupportedConfigTypes will be '[ecf.generic.server]'. When this method is called with the ecf.generic.client description (i.e. the container type description named 'ecf.generic.client'), it should respond with a non-null, non-empty array...e.g.: [ecf.generic.client]. This indicates that the ecf.generic.client can serve as an importer for the given exporter config type. All, other descriptions should return `null`, to indicate that they cannot import a remote service exported by the given exporterSupportedConfigTypes.

Specified by:
  `getImportedConfigs` in interface `IRemoteServiceContainerInstantiator`
Parameters:
  `description` - the container type description under consideration.
  `exporterSupportedConfigs` - the exporter supported config types under consideration.
Returns:
  String[] indicating the importer's supported config types. Should be `null`, unless one or more of the exporterSupportedConfigTypes is recognized for the given description.

#### getPropertiesForImportedConfigs

    public Dictionary getPropertiesForImportedConfigs(ContainerTypeDescription description,
                                                      String[] importedConfigTypes,
                                                      Dictionary exportedProperties)

Description copied from interface: `IRemoteServiceContainerInstantiator`
Get the properties associated with the given description, with the given importedConfigTypes, via the given exportedProperties.

Specified by:
  `getPropertiesForImportedConfigs` in interface `IRemoteServiceContainerInstantiator`
Parameters:
  `description` - the container type description under consideration.
  `importedConfigTypes` - the imported config types for the given properties. Will not be `null`, and should be the same values as returned from `IRemoteServiceContainerInstantiator.getImportedConfigs(ContainerTypeDescription, String[])`.
  `exportedProperties` - the properties from the exported service. Will not be `null`.
Returns:
  Dictionary that has all of the properties for the importedConfigTypes. May be `null` if no properties are associated with the given description, importedConfigTypes, exportedProperties.