static final class FiddlerLease.ConstrainableFiddlerLease extends FiddlerLease implements RemoteMethodControl
FiddlerLease
.
When a client obtains an instance of this proxy class, the client
should not attempt to use the proxy until the client is assured
that the proxy can be trusted. In addition to implementing the
methods and mechanisms required by RemoteMethodControl
,
this class - in conjunction with the service's
ProxyVerifier
class, helps provide a mechanism
for verifying trust in the proxy on behalf of a client.
In order to verify that an instance of this class is trusted,
trust must be verified in all subsidiary objects (contained in that
instance) through which the client ultimately makes calls (local or
remote). With respect to this class, the server
field
is a proxy object through which the client makes remote calls to the
service's backend. Therefore, trust in that object must be
verified. Additionally, this class also contains a field of type
Uuid
(registrationID
which should be
tested for trust. Consider the following diagram:
FiddlerLease { Fiddler server Uuid registrationID }//end FiddlerLease
Thus, in order to verify that an instance of this class is trusted, trust must be verified in the following objects from the diagram above:
readObject
method of this class. Part of
trust verification is performed in the readObject
method,
and part is performed when the client prepares the proxy. Thus, this
class' participation in the trust verification process can be
summarized as follows:
FiddlerLease.ConstrainableFiddlerLease
Modifier and Type | Field and Description |
---|---|
private static Method[] |
canBatchMethodMapArray
In order to determine if this lease can be batched with another
given lease, the method
canBatch must verify that
the corresponding methods of each lease have equivalent
constraints. |
private static Method |
cancelMethod |
private MethodConstraints |
methodConstraints
Client constraints placed on this proxy (may be
null ). |
private static Method[] |
methodMapArray
Array containing element pairs in which each pair of elements
represents a correspondence 'mapping' between two methods having
the following characteristics:
- the first element in the pair is one of the public, remote
method(s) that may be invoked by the client through the proxy
class that this class extends
- the second element in the pair is the method, implemented
in the backend server class, that is ultimately executed in
the server's backend when the client invokes the corresponding
method in this proxy
|
private static Method |
renewMethod |
(package private) static long |
serialVersionUID |
leaseID, registrationID, server, serverID
expiration, serialFormat
Modifier | Constructor and Description |
---|---|
private |
FiddlerLease.ConstrainableFiddlerLease(Fiddler server,
Uuid serverID,
Uuid registrationID,
Uuid leaseID,
long expiration,
MethodConstraints methodConstraints)
Constructs a new
ConstrainableFiddlerLease instance. |
Modifier and Type | Method and Description |
---|---|
boolean |
canBatch(Lease lease)
Examines the input parameter to determine if that parameter, along
with the current lease (the current instance of this class), can
be batched in a
LeaseMap . |
private static Fiddler |
constrainServer(Fiddler server,
MethodConstraints constraints)
Returns a copy of the given server proxy having the client method
constraints that result after the specified method mapping is
applied to the given client method constraints.
|
MethodConstraints |
getConstraints()
Returns the client constraints placed on the current instance
of this proxy class (
ConstrainableFiddlerLease ). |
private ProxyTrustIterator |
getProxyTrustIterator()
Returns a proxy trust iterator that is used in
ProxyTrustVerifier to retrieve this object's
trust verifier. |
private void |
readObject(ObjectInputStream s)
Performs various functions related to the trust verification
process for the current instance of this proxy class, as
detailed in the description for this class.
|
RemoteMethodControl |
setConstraints(MethodConstraints constraints)
Returns a new copy of this proxy class
(
ConstrainableFiddlerLease ) with its client
constraints set to the specified constraints. |
cancel, createLease, createLeaseMap, doRenew, equals, getLeaseID, getReferentUuid, getRegistrationID, getServer, getServerID, hashCode, setExpiration
getExpiration, getSerialFormat, renew, setSerialFormat
static final long serialVersionUID
private static final Method renewMethod
private static final Method cancelMethod
private static final Method[] methodMapArray
private static final Method[] canBatchMethodMapArray
canBatch
must verify that
the corresponding methods of each lease have equivalent
constraints. The array defined here contains the set of methods
whose constraints will be compared in canBatch
.private MethodConstraints methodConstraints
null
).private FiddlerLease.ConstrainableFiddlerLease(Fiddler server, Uuid serverID, Uuid registrationID, Uuid leaseID, long expiration, MethodConstraints methodConstraints)
ConstrainableFiddlerLease
instance.
For a description of all but the methodConstraints
argument (provided below), refer to the description for the
constructor of this class' super class.
methodConstraints
- the client method constraints to place on
this proxy (may be null
).public boolean canBatch(Lease lease)
LeaseMap
.
For this implementation of the service, two leases can be
batched (placed in the same service-specific instance of
LeaseMap
) if those leases satisfy the following
conditions:
Lease
implementation
canBatch
in interface Lease
canBatch
in class FiddlerLease
lease
- reference to the Lease
object that this
method examines for batching compatibility with the
the current instance of this classtrue
if the input parameter is compatible for
batching with the current instance of this class,
false
otherwiseLease.canBatch(net.jini.core.lease.Lease)
private static Fiddler constrainServer(Fiddler server, MethodConstraints constraints)
public RemoteMethodControl setConstraints(MethodConstraints constraints)
ConstrainableFiddlerLease
) with its client
constraints set to the specified constraints. A null
value is interpreted as mapping all methods to empty constraints.setConstraints
in interface RemoteMethodControl
constraints
- client constraints, or null
RemoteMethodControl.getConstraints()
public MethodConstraints getConstraints()
ConstrainableFiddlerLease
).
The value returned by this method can be null
,
which is interpreted as mapping all methods to empty constraints.getConstraints
in interface RemoteMethodControl
null
RemoteMethodControl.setConstraints(net.jini.core.constraint.MethodConstraints)
private ProxyTrustIterator getProxyTrustIterator()
ProxyTrustVerifier
to retrieve this object's
trust verifier.private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
InvalidObjectException
- if any of the
requirements for trust verification (as detailed in the
class description) are not satisfied.IOException
ClassNotFoundException
Copyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.