edu.emory.mathcs.rmix
Class Parameters.Binding

java.lang.Object
  extended byedu.emory.mathcs.rmix.Parameters.Binding
Enclosing class:
Parameters

public static class Parameters.Binding
extends java.lang.Object

Enumeration of binding types


Field Summary
static Parameters.Binding DIRECT
          Allows using direct object reference instead of a dynamic proxy, thus using pass-by-reference for parameters and return values (see above), and completely bypassing RMIX access control.
static Parameters.Binding PASSBYREF
          This binding allows passing parameters and return values by reference rather than by a deep copy.
static Parameters.Binding REMOTE
          Default binding with remote semantics
 java.lang.String type
           
 
Method Summary
 boolean allows(Parameters.Binding other)
           
static Parameters.Binding fromMnemonic(int mnemonic)
           
 char getMnemonic()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

type

public final java.lang.String type

REMOTE

public static Parameters.Binding REMOTE
Default binding with remote semantics


PASSBYREF

public static Parameters.Binding PASSBYREF
This binding allows passing parameters and return values by reference rather than by a deep copy. Disables asynchronous invocations. Caution: this implies that the call is initiated from the caller thread (instead of a generic server thread). Also, if the invoked remote method modify its arguments, the changes will be visible at the caller side. Also, may lead to ClassCastExceptions if parameters or return values are of non-system classes, and if these classes are loaded by different class loaders at the caller and callee sides.


DIRECT

public static Parameters.Binding DIRECT
Allows using direct object reference instead of a dynamic proxy, thus using pass-by-reference for parameters and return values (see above), and completely bypassing RMIX access control. Caution: in addition to the above, this binding poses additional security risks by exposing to the caller a hard reference to the target object, which results e.g. in bypassing an interceptor (if any) and granting unlimited access to the complete set of target public methods. Also, unexporting the remote object will not prohibit the invoker from further accessing it; client may in fact keep the object from being garbage-collected.

Method Detail

allows

public boolean allows(Parameters.Binding other)

getMnemonic

public char getMnemonic()

toString

public java.lang.String toString()

fromMnemonic

public static Parameters.Binding fromMnemonic(int mnemonic)