org.eclipse.ecf.remoteservice.client

## Class AbstractRSAClientContainer

- java.lang.Object
- - org.eclipse.ecf.core.AbstractContainer
  - - org.eclipse.ecf.remoteservice.client.AbstractClientContainer
    - - org.eclipse.ecf.remoteservice.client.AbstractRSAClientContainer

All Implemented Interfaces:
  org.eclipse.core.runtime.IAdaptable, IContainer, IIdentifiable, IRemoteServiceClientContainerAdapter, IRemoteServiceConsumer, IRemoteServiceContainerAdapter, IRemoteServiceHost, IRSAConsumerContainerAdapter

    public abstract class AbstractRSAClientContainer
    extends AbstractClientContainer
    implements IRSAConsumerContainerAdapter

Abstract client container for use by RSA distribution providers. Implements IRSAConsumerContainerAdapter.

Since:
  8.9

### Nested Class Summary

Nested Classes
`class` `AbstractRSAClientContainer.RSAClientRegistration`

### Field Summary

### Fields inherited from class org.eclipse.ecf.remoteservice.client.AbstractClientContainer

`alwaysSendDefaultParameters, connectContext, connectedID, connectLock, containerID, parameterSerializer, parameterSerializerLock, registry, remoteResponseDeserializer, remoteResponseDeserializerLock, remoteServiceFactory, remoteServiceListeners`

### Constructor Summary

Constructors
Constructor and Description
`AbstractRSAClientContainer(ID containerID)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `connectToEndpoint(ID connectTargetID)`
`protected IRemoteCallable[][]` `createRegistrationCallables(ID targetID, String[] interfaces, Dictionary endpointDescriptionProperties)`
`protected Dictionary` `createRegistrationProperties(Map<String,Object> endpointDescriptionProperties)`
`protected RemoteServiceClientRegistration` `createRSAClientRegistration(ID targetID, String[] interfaces, Map<String,Object> endpointDescriptionProperties)`
`Namespace` `getConnectNamespace()` Get the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls to `IContainer.connect(ID, IConnectContext)`.
`IRemoteServiceReference[]` `importEndpoint(Map<String,Object> endpointDescriptionProperties)`
`protected String` `prepareEndpointAddress(IRemoteCall call, IRemoteCallable callable)` Prepare an endpoint address for the given call and callable.
`RemoteServiceClientRegistration` `registerEndpoint(ID targetID, String[] interfaces, Map<String,Object> endpointDescriptionProperties)`
`boolean` `setRemoteServiceCallPolicy(IRemoteServiceCallPolicy policy)` Set the remote service call policy to enable authorization on remote service method calls

### Methods inherited from class org.eclipse.ecf.remoteservice.client.AbstractClientContainer

`addRemoteServiceListener, asyncGetRemoteServiceReferences, asyncGetRemoteServiceReferences, asyncGetRemoteServiceReferences, connect, createRemoteFilter, createRemoteService, createRestServiceRegistration, createRestServiceRegistration, createUriRequest, disconnect, dispose, getAllRemoteServiceReferences, getConnectContextForAuthentication, getConnectedID, getID, getParameterSerializer, getParameterSerializer, getRemoteCallTargetID, getRemoteService, getRemoteServiceID, getRemoteServiceNamespace, getRemoteServiceReference, getRemoteServiceReferences, getRemoteServiceReferences, getRemoteServiceReferences, getResponseDeserializer, getResponseDeserializer, logException, prepareCallParameters, prepareExtraParameters, prepareParameters, processResponse, registerCallables, registerCallables, registerCallables, registerRemoteService, removeRemoteServiceListener, serializeParameter, serializeParameter, setAlwaysSendDefaultParameters, setConnectContextForAuthentication, setParameterSerializer, setRemoteServiceFactory, setResponseDeserializer, ungetRemoteService`

### Methods inherited from class org.eclipse.ecf.core.AbstractContainer

`addListener, fireContainerEvent, getAdapter, getPasswordFromConnectContext, removeListener`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

`getAdapter`

### Constructor Detail

#### AbstractRSAClientContainer

    public AbstractRSAClientContainer(ID containerID)

### Method Detail

#### setRemoteServiceCallPolicy

    public boolean setRemoteServiceCallPolicy(IRemoteServiceCallPolicy policy)

Description copied from interface: `IRemoteServiceContainerAdapter`
Set the remote service call policy to enable authorization on remote service method calls

Specified by:
  `setRemoteServiceCallPolicy` in interface `IRemoteServiceContainerAdapter`
Parameters:
  `policy` - Implementation of `IRemoteServiceCallPolicy` containing authorization specific code
Returns:
  `true` if the underlying provider supports using the policy, `false` if it does not support using the policy.

#### getConnectNamespace

    public Namespace getConnectNamespace()

Description copied from interface: `IContainer`
Get the Namespace for creating a targetID suitable for use as the first parameter in subsequent calls to `IContainer.connect(ID, IConnectContext)`. If this method returns `null`, then it means that `null` is expected as a valid parameter in subsequent calls to `IContainer.connect(ID, IConnectContext)`. If this method returns a non-`null` Namespace, then the `targetID` parameter in `IContainer.connect(ID, IConnectContext)` must be non-`null` instance created of the returned Namespace.

Specified by:
  `getConnectNamespace` in interface `IContainer`
Returns:
  Namespace the namespace associated with subsequent calls to `IContainer.connect(ID, IConnectContext)`. If `null`, then the `targetID` instances passed to `IContainer.connect(ID, IConnectContext)` may be `null`. If not `null`, then `targetID` instances passed to `IContainer.connect(ID, IConnectContext)` must be instances of the returned Namespace.

#### connectToEndpoint

    protected void connectToEndpoint(ID connectTargetID)
                              throws ContainerConnectException

Throws:
  `ContainerConnectException`

#### createRegistrationCallables

    protected IRemoteCallable[][] createRegistrationCallables(ID targetID,
                                                              String[] interfaces,
                                                              Dictionary endpointDescriptionProperties)

#### createRegistrationProperties

    protected Dictionary createRegistrationProperties(Map<String,Object> endpointDescriptionProperties)

#### createRSAClientRegistration

    protected RemoteServiceClientRegistration createRSAClientRegistration(ID targetID,
                                                                          String[] interfaces,
                                                                          Map<String,Object> endpointDescriptionProperties)

#### registerEndpoint

    public RemoteServiceClientRegistration registerEndpoint(ID targetID,
                                                            String[] interfaces,
                                                            Map<String,Object> endpointDescriptionProperties)

#### importEndpoint

    public IRemoteServiceReference[] importEndpoint(Map<String,Object> endpointDescriptionProperties)
                                             throws ContainerConnectException,
                                                    InvalidSyntaxException

Specified by:
  `importEndpoint` in interface `IRSAConsumerContainerAdapter`
Throws:
  `ContainerConnectException`
  `InvalidSyntaxException`

#### prepareEndpointAddress

    protected String prepareEndpointAddress(IRemoteCall call,
                                            IRemoteCallable callable)

Description copied from class: `AbstractClientContainer`
Prepare an endpoint address for the given call and callable.

Specified by:
  `prepareEndpointAddress` in class `AbstractClientContainer`
Parameters:
  `call` - to create an endpoint for. Will not be `null`.
  `callable` - to create an endpoing for. Will not be `null`.
Returns:
  String that represents the endpoing for the given call and callable. May only return `null` if the given call should not be completed (i.e. there is no endpoint associated with the given call).