public abstract class AbstractRestClientContainer extends AbstractClientContainer
Modifier and Type | Class and Description |
---|---|
protected class |
AbstractRestClientContainer.RestRemoteServiceClientRegistration |
Modifier and Type | Field and Description |
---|---|
static String |
SLASH |
alwaysSendDefaultParameters, connectContext, connectedID, connectLock, containerID, parameterSerializer, parameterSerializerLock, registry, remoteResponseDeserializer, remoteResponseDeserializerLock, remoteServiceFactory, remoteServiceListeners
Constructor and Description |
---|
AbstractRestClientContainer(RestID containerID) |
Modifier and Type | Method and Description |
---|---|
protected abstract IRemoteService |
createRemoteService(RemoteServiceClientRegistration registration)
Create a remote service for a given remote service registration.
|
protected RemoteServiceClientRegistration |
createRestServiceRegistration(IRemoteCallable[] callables,
Dictionary properties) |
protected RemoteServiceClientRegistration |
createRestServiceRegistration(String[] clazzes,
IRemoteCallable[][] callables,
Dictionary properties) |
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[] |
getRemoteServiceReferences(ID target,
ID[] idFilter,
String clazz,
String filter)
Returns an array of
IRemoteServiceReference objects. |
IRemoteServiceReference[] |
getRemoteServiceReferences(ID target,
String clazz,
String filter)
Returns an array of
IRemoteServiceReference objects. |
protected String |
prepareBaseUri(IRemoteCall call,
IRemoteCallable callable) |
String |
prepareEndpointAddress(IRemoteCall call,
IRemoteCallable callable)
Prepare an endpoint address for the given call and callable.
|
protected String |
prepareResourcePath(IRemoteCall call,
IRemoteCallable callable) |
boolean |
setRemoteServiceCallPolicy(IRemoteServiceCallPolicy policy)
Set the remote service call policy to enable authorization on remote service method calls
|
protected String |
substituteParameters(String path,
Object[] parameters) |
protected ID |
transformTarget(ID originalTarget,
String filter) |
addRemoteServiceListener, asyncGetRemoteServiceReferences, asyncGetRemoteServiceReferences, asyncGetRemoteServiceReferences, connect, createRemoteFilter, createUriRequest, disconnect, dispose, getAllRemoteServiceReferences, getConnectContextForAuthentication, getConnectedID, getID, getParameterSerializer, getParameterSerializer, getRemoteCallTargetID, getRemoteService, getRemoteServiceID, getRemoteServiceNamespace, getRemoteServiceReference, getRemoteServiceReferences, getResponseDeserializer, getResponseDeserializer, logException, prepareCallParameters, prepareExtraParameters, prepareParameters, processResponse, registerCallables, registerCallables, registerCallables, registerRemoteService, removeRemoteServiceListener, serializeParameter, serializeParameter, setAlwaysSendDefaultParameters, setConnectContextForAuthentication, setParameterSerializer, setRemoteServiceFactory, setResponseDeserializer, ungetRemoteService
addListener, fireContainerEvent, getAdapter, getPasswordFromConnectContext, removeListener
public static final String SLASH
public AbstractRestClientContainer(RestID containerID)
public boolean setRemoteServiceCallPolicy(IRemoteServiceCallPolicy policy)
IRemoteServiceContainerAdapter
policy
- Implementation of IRemoteServiceCallPolicy
containing authorization specific codetrue
if the underlying provider supports using the policy, false
if
it does not support using the policy.public Namespace getConnectNamespace()
IContainer
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.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.protected abstract IRemoteService createRemoteService(RemoteServiceClientRegistration registration)
AbstractClientContainer
createRemoteService
in class AbstractClientContainer
registration
- the remote service client registration associated with the service
being imported. Will not be null
.public IRemoteServiceReference[] getRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException
IRemoteServiceContainerAdapter
IRemoteServiceReference
objects. The
returned array of IRemoteServiceReference
objects contains
services that were registered under the specified class and match the
specified idFilter, and filter criteria.
Note this method assumes that the enclosing container has previously
been connected, and uses the idFilter to filter among targets within the
previously connected set of container IDs. To request connection as
part of reference lookup, see IRemoteServiceContainerAdapter.getRemoteServiceReferences(ID, String, String)
.
The list is valid at the time of the call to this method, however since the Framework is a very dynamic environment, services can be modified or unregistered at anytime.
target
is a remote container to connect to. If null
, no connection attempt is made.
idFilter
is used to select a registered services that were
registered by a given set of containers with id in idFilter. Only
services exposed by a container with id in idFilter will be returned. If idFilter
is null
, all containers are
considered to match the filter.
filter
is used to select the registered service whose
properties objects contain keys and values which satisfy the filter. See
Filter
for a description of the filter string syntax.
If filter
is null
, all registered services
are considered to match the filter. If filter
cannot be
parsed, an InvalidSyntaxException
will be thrown with a human
readable message where the filter became unparsable.
getRemoteServiceReferences
in interface IRemoteServiceConsumer
getRemoteServiceReferences
in interface IRemoteServiceContainerAdapter
getRemoteServiceReferences
in class AbstractClientContainer
target
- a target container to connect to if enclosing container is not already
connected. May be null
.idFilter
- an array of ID instances that will restrict the search for
matching container ids If null, all remote containers will be
considered in search for matching IRemoteServiceReference
instances. May be null
.clazz
- the fully qualified name of the interface class that describes
the desired service. Must not be null
.filter
- The filter criteria. May be null
.null
if no services are found that match the search.InvalidSyntaxException
- If filter contains an invalid filter string that cannot be parsed.ContainerConnectException
- if container cannot connectpublic IRemoteServiceReference[] getRemoteServiceReferences(ID target, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException
IRemoteServiceContainerAdapter
Returns an array of IRemoteServiceReference
objects. The
returned array of IRemoteServiceReference
objects contains
services that were registered under the specified class and match the
specified idFilter, and filter criteria.
The list is valid at the time of the call to this method, however since the Framework is a very dynamic environment, services can be modified or unregistered at anytime.
target is a remote container to connect to.
filter
is used to select the registered service whose
properties objects contain keys and values which satisfy the filter. See
Filter
for a description of the filter string syntax.
If filter
is null
, all registered services
are considered to match the filter. If filter
cannot be
parsed, an InvalidSyntaxException
will be thrown with a human
readable message where the filter became unparsable.
getRemoteServiceReferences
in interface IRemoteServiceConsumer
getRemoteServiceReferences
in interface IRemoteServiceContainerAdapter
getRemoteServiceReferences
in class AbstractClientContainer
target
- an target to connect to if enclosing container is not already
connected. May be null
.clazz
- the fully qualified name of the interface class that describes
the desired service. Must not be null
.filter
- The filter criteria. May be null
.null
if no services are found that match the search.InvalidSyntaxException
- If filter contains an invalid filter string that cannot be parsed.ContainerConnectException
- if container cannot connectprotected ID transformTarget(ID originalTarget, String filter) throws InvalidSyntaxException
InvalidSyntaxException
protected String prepareBaseUri(IRemoteCall call, IRemoteCallable callable)
protected String prepareResourcePath(IRemoteCall call, IRemoteCallable callable)
public String prepareEndpointAddress(IRemoteCall call, IRemoteCallable callable)
AbstractClientContainer
prepareEndpointAddress
in class AbstractClientContainer
call
- to create an endpoint for. Will not be null
.callable
- to create an endpoing for. Will not be null
.null
if the
given call should not be completed (i.e. there is no endpoint associated with the given call).protected RemoteServiceClientRegistration createRestServiceRegistration(String[] clazzes, IRemoteCallable[][] callables, Dictionary properties)
createRestServiceRegistration
in class AbstractClientContainer
protected RemoteServiceClientRegistration createRestServiceRegistration(IRemoteCallable[] callables, Dictionary properties)
createRestServiceRegistration
in class AbstractClientContainer
Copyright © 2017 Eclipse Foundation. All rights reserved.