org.eclipse.ecf.remoteservice.client

## Interface IRemoteServiceClientContainerAdapter

All Superinterfaces:
  org.eclipse.core.runtime.IAdaptable, IRemoteServiceConsumer, IRemoteServiceContainerAdapter, IRemoteServiceHost

All Known Implementing Classes:
  AbstractClientContainer, AbstractRestClientContainer, AbstractRSAClientContainer, RestClientContainer

    public interface IRemoteServiceClientContainerAdapter
    extends IRemoteServiceContainerAdapter

Remote service client container adapter. This container adapter provides remote service clients the ability to register callables. At runtime when actual remote calls are attempted, the associated callable is looked up in the `RemoteServiceClientRegistry`. If present, the remote call can be completed, if not present in the registry, the call is not completed.

Since:
  4.0

### Method Summary

All Methods Instance Methods Abstract Methods
`IRemoteServiceRegistration` `registerCallables(IRemoteCallable[] remoteCallables, Dictionary properties)` Register remoteCallables for remote service client.
`IRemoteServiceRegistration` `registerCallables(String[] serviceInterfaceNames, IRemoteCallable[][] remoteCallables, Dictionary properties)` Register remoteCallables for given serviceInterfaceNames.
`void` `setParameterSerializer(IRemoteCallParameterSerializer serializer)` Set the remote call parameter serializer.
`void` `setResponseDeserializer(IRemoteResponseDeserializer deserializer)`

### Methods inherited from interface org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter

`addRemoteServiceListener, asyncGetRemoteServiceReferences, asyncGetRemoteServiceReferences, asyncGetRemoteServiceReferences, createRemoteFilter, getAllRemoteServiceReferences, getRemoteService, getRemoteServiceID, getRemoteServiceNamespace, getRemoteServiceReference, getRemoteServiceReferences, getRemoteServiceReferences, getRemoteServiceReferences, registerRemoteService, removeRemoteServiceListener, setConnectContextForAuthentication, setRemoteServiceCallPolicy, ungetRemoteService`

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Method Detail

#### registerCallables

    IRemoteServiceRegistration registerCallables(String[] serviceInterfaceNames,
                                                 IRemoteCallable[][] remoteCallables,
                                                 Dictionary properties)

Register remoteCallables for given serviceInterfaceNames. This method allows providers to register `IRemoteCallable` instances and associate an array of IRemoteCallables with each given serviceInterfaceName, so that subsequent lookup operations result in appropriate remote service registrations. The IRemoteCallable instances should correspond to methods within the particular service interface class.

Note that the number of serviceInterfaceNames (i.e. the length of the given String[]) must be equal to the number of rows of the remoteCallable two-dimensional array.

For example, suppose we have a service interface "org.eclipse.ecf.IFoo":

     public interface IFoo {
         public String getFoo();
     }

We can define for this service inteface the following two dimensional array of callables:

     IRemoteCallable[][] callables = new IRemoteCallable[] { new RemoteCallable("foo","foo/bar/resourcePath",null,requestType) }};

and then register with this method:

     IRemoteServiceRegistration reg = this.registerRemoteCallable(new String[] { "org.eclipse.ecf.IFoo" }, callables, null);

Parameters:
  `serviceInterfaceNames` - service interface names
  `remoteCallables` - the IRemoteCallables to register. Each IRemoteCallable represents a specific method to resourcePath mapping. Must not be `null`.
  `properties` - any service properties to associate with the given registration.
Returns:
  IRemoteServiceRegistration to use to unregister the remote service. Will not be `null`.

#### registerCallables

    IRemoteServiceRegistration registerCallables(IRemoteCallable[] remoteCallables,
                                                 Dictionary properties)

Register remoteCallables for remote service client. This method allows providers to register `IRemoteCallable` instances, so that subsequent lookup operations result in appropriate remote service registrations.

Parameters:
  `remoteCallables` - the IRemoteCallables to register. Each IRemoteCallable represents a specific method to resourcePath mapping. Must not be `null`.
  `properties` - any service properties to associate with the given registration.
Returns:
  IRemoteServiceRegistration to use to unregister the remote service. Will not be `null`.

#### setParameterSerializer

    void setParameterSerializer(IRemoteCallParameterSerializer serializer)

Set the remote call parameter serializer.

Parameters:
  `serializer` - the remote call parameter serializer to set for this container. May be `null`.

#### setResponseDeserializer

    void setResponseDeserializer(IRemoteResponseDeserializer deserializer)