org.jgroups.blocks
Class MethodCall

java.lang.Object
  extended byorg.jgroups.blocks.MethodCall
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable

public class MethodCall
extends java.lang.Object
implements java.io.Externalizable

A method call is the JavaGroup 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.9 $
Author:
Bela Ban
See Also:
Serialized Form

Field Summary
protected  java.lang.Object[] args
          the arguments of the method
protected static Log log
           
protected  java.lang.reflect.Method method
          the Method of the call
protected static short METHOD
          explicitly ship the method, caller has to determine method himself
protected  java.lang.String method_name
          the name of the method, case sensitive
protected  short mode
          which mode to use
protected static short OLD
          infer the method from the arguments
protected  java.lang.String[] signature
          the signature, e.g.
protected static short SIGNATURE
          provide a signature, similar to JMX
protected  java.lang.Class[] types
          the class types, e.g.
protected static short TYPES
          use class information
 
Constructor Summary
MethodCall()
          creates an empty method call, this is always invalid, until setName() has been called
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 arguments
MethodCall(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
 java.lang.Object[] getArgs()
          returns an ordered list of arguments used for the method invokation
 java.lang.reflect.Method getMethod()
           
 int getMode()
           
 java.lang.String getName()
          returns the name of the method to be invoked using this method call object
 java.lang.Object invoke(java.lang.Object target)
          Invokes the method with the supplied arguments against the target object.
 java.lang.Object invoke(java.lang.Object target, java.lang.Object[] args)
           
 void readExternal(java.io.ObjectInput in)
           
 void setArgs(java.lang.Object[] args)
           
 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
 java.lang.String toString()
           
 java.lang.String toStringDetails()
           
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

method_name

protected java.lang.String method_name
the name of the method, case sensitive


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


log

protected static 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
Constructor Detail

MethodCall

public MethodCall()
creates an empty method call, this is always invalid, until setName() 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(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

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()

invoke

public java.lang.Object invoke(java.lang.Object target)
                        throws java.lang.Throwable
Invokes 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()

toStringDetails

public java.lang.String toStringDetails()

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException


Copyright ? 2001,2002 www.jgroups.com . All Rights Reserved.