Package org.jgroups.blocks
Class MethodCall
- java.lang.Object
-
- org.jgroups.blocks.MethodCall
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable
public class MethodCall extends java.lang.Object implements java.io.ExternalizableA method call is the JGroups representation of a remote method. It includes the name of the method (case sensitive) and a list of arguments. A method call is serializable and can be passed over the wire.- Version:
- $Revision: 1.24.6.2 $
- Author:
- Bela Ban
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Object[]argsThe arguments of the method.protected static shortIDUse an ID to map to a methodprotected static org.apache.commons.logging.Loglogprotected java.lang.reflect.MethodmethodThe Method of the call.protected static shortMETHODExplicitly ship the method, caller has to determine method himself.protected shortmethod_idThe ID of a method, maps to a java.lang.reflect.Methodprotected java.lang.Stringmethod_nameThe name of the method, case sensitive.protected shortmodeWhich mode to use.protected static shortOLDInfer the method from the arguments.protected java.util.MappayloadTo carry arbitrary data with a method call, data needs to be serializable if sent across the wireprotected java.lang.String[]signatureThe signature, e.g., new String[]{String.class.getName(), int.class.getName()}.protected static shortSIGNATUREProvide a signature, similar to JMX.protected java.lang.Class[]typesThe class types, e.g., new Class[]{String.class, int.class}.protected static shortTYPESUse class information.
-
Constructor Summary
Constructors Constructor Description MethodCall()Creates an empty method call, this is always invalid, untilsetName()has been called.MethodCall(short method_id, java.lang.Object[] args)MethodCall(java.lang.reflect.Method method)MethodCall(java.lang.reflect.Method method, java.lang.Object[] arguments)MethodCall(java.lang.String method_name, java.lang.Object[] args)Deprecated.Use one of the constructors that take class types as argumentsMethodCall(java.lang.String method_name, java.lang.Object[] args, java.lang.Class[] types)MethodCall(java.lang.String method_name, java.lang.Object[] args, java.lang.String[] signature)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectget(java.lang.Object key)java.lang.Object[]getArgs()returns an ordered list of arguments used for the method invokationshortgetId()java.lang.reflect.MethodgetMethod()intgetMode()java.lang.StringgetName()returns the name of the method to be invoked using this method call objectjava.lang.Objectinvoke(java.lang.Object target)Invokes the method with the supplied arguments against the target object.java.lang.Objectinvoke(java.lang.Object target, java.lang.Object[] args)java.lang.Objectput(java.lang.Object key, java.lang.Object value)voidreadExternal(java.io.ObjectInput in)voidsetArgs(java.lang.Object[] args)voidsetId(short method_id)voidsetMethod(java.lang.reflect.Method m)voidsetName(java.lang.String n)sets the name for this MethodCall and allowing you to reuse the same object for a different method invokation of a different methodjava.lang.StringtoString()java.lang.StringtoStringDetails()voidwriteExternal(java.io.ObjectOutput out)
-
-
-
Field Detail
-
method_name
protected java.lang.String method_name
The name of the method, case sensitive.
-
method_id
protected short method_id
The ID of a method, maps to a java.lang.reflect.Method
-
args
protected java.lang.Object[] args
The arguments of the method.
-
types
protected java.lang.Class[] types
The class types, e.g., new Class[]{String.class, int.class}.
-
signature
protected java.lang.String[] signature
The signature, e.g., new String[]{String.class.getName(), int.class.getName()}.
-
method
protected java.lang.reflect.Method method
The Method of the call.
-
payload
protected java.util.Map payload
To carry arbitrary data with a method call, data needs to be serializable if sent across the wire
-
log
protected static final org.apache.commons.logging.Log log
-
mode
protected short mode
Which mode to use.
-
OLD
protected static final short OLD
Infer the method from the arguments.- See Also:
- Constant Field Values
-
METHOD
protected static final short METHOD
Explicitly ship the method, caller has to determine method himself.- See Also:
- Constant Field Values
-
TYPES
protected static final short TYPES
Use class information.- See Also:
- Constant Field Values
-
SIGNATURE
protected static final short SIGNATURE
Provide a signature, similar to JMX.- See Also:
- Constant Field Values
-
ID
protected static final short ID
Use an ID to map to a method- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MethodCall
public MethodCall()
Creates an empty method call, this is always invalid, untilsetName()has been called.
-
MethodCall
public MethodCall(java.lang.reflect.Method method)
-
MethodCall
public MethodCall(java.lang.reflect.Method method, java.lang.Object[] arguments)
-
MethodCall
public MethodCall(java.lang.String method_name, java.lang.Object[] args)Deprecated.Use one of the constructors that take class types as arguments- Parameters:
method_name-args-
-
MethodCall
public MethodCall(short method_id, java.lang.Object[] args)
-
MethodCall
public MethodCall(java.lang.String method_name, java.lang.Object[] args, java.lang.Class[] types)
-
MethodCall
public MethodCall(java.lang.String method_name, java.lang.Object[] args, java.lang.String[] signature)
-
-
Method Detail
-
getMode
public int getMode()
-
getName
public java.lang.String getName()
returns the name of the method to be invoked using this method call object- Returns:
- a case sensitive name, can be null for an invalid method call
-
setName
public void setName(java.lang.String n)
sets the name for this MethodCall and allowing you to reuse the same object for a different method invokation of a different method- Parameters:
n- - a case sensitive method name
-
getId
public short getId()
-
setId
public void setId(short method_id)
-
getArgs
public java.lang.Object[] getArgs()
returns an ordered list of arguments used for the method invokation- Returns:
- returns the list of ordered arguments
-
setArgs
public void setArgs(java.lang.Object[] args)
-
getMethod
public java.lang.reflect.Method getMethod()
-
setMethod
public void setMethod(java.lang.reflect.Method m)
-
put
public java.lang.Object put(java.lang.Object key, java.lang.Object value)
-
get
public java.lang.Object get(java.lang.Object key)
-
invoke
public java.lang.Object invoke(java.lang.Object target) throws java.lang.ThrowableInvokes the method with the supplied arguments against the target object. If a method lookup is provided, it will be used. Otherwise, the default method lookup will be used.- Parameters:
target- - the object that you want to invoke the method on- Returns:
- an object
- Throws:
java.lang.Throwable
-
invoke
public java.lang.Object invoke(java.lang.Object target, java.lang.Object[] args) throws java.lang.Throwable- Throws:
java.lang.Throwable
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toStringDetails
public java.lang.String toStringDetails()
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException- Specified by:
writeExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
-