org.eclipse.ecf.core.sharedobject
Class SharedObjectMsg

java.lang.Object
  extended by org.eclipse.ecf.core.sharedobject.SharedObjectMsg
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
RemoteCallImpl

public class SharedObjectMsg
extends java.lang.Object
implements java.io.Serializable

Shared Object Message. Instances may be used for sending/receiving messages among shared object replicas. This class can be used to create SharedObjectMsg instances via one of createMsg(String) methods.

See Also:
Serialized Form

Field Summary
protected  java.lang.String clazz
           
protected  java.lang.String method
           
static java.lang.Object[] nullArgs
           
static java.lang.Class[] nullTypes
           
protected  java.lang.Object[] parameters
           
 
Constructor Summary
protected SharedObjectMsg()
           
protected SharedObjectMsg(java.lang.String className, java.lang.String methodName, java.lang.Object[] parameters)
           
 
Method Summary
protected  void checkAlterMsg()
          Check if it is permitted to alter the state of this message (args, class name, method name).
static void checkForSerializable(SharedObjectMsg aMsg)
          Check a given msg to verify that all Objects in args array implement the Serializable interface.
static SharedObjectMsg createMsg(java.lang.String methodName)
           
static SharedObjectMsg createMsg(java.lang.String methodName, java.lang.Object arg)
           
static SharedObjectMsg createMsg(java.lang.String methodName, java.lang.Object[] param)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName, java.lang.Object arg)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName, java.lang.Object[] param)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName, java.lang.Object arg1, java.lang.Object arg2)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)
           
static SharedObjectMsg createMsg(java.lang.String className, java.lang.String methodName, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, java.lang.Object arg5)
           
protected  java.lang.reflect.Method findMethod(java.lang.Class clazz1)
           
static java.lang.reflect.Method findMethod(java.lang.Class clazz, java.lang.String meth, java.lang.Class[] args)
          Find a Method instance on given class.
protected  java.lang.reflect.Method findMethodRecursive(java.lang.Class clazz1)
           
static java.lang.reflect.Method findMethodRecursive(java.lang.Class clazz, java.lang.String meth, java.lang.Class[] args)
          Find a Method instance on given class, and recursively search the class' superclass tree for given method.
static java.lang.Class getClass(java.lang.ClassLoader loader, java.lang.String name)
          Utility for getting a Class instance from a String class name.
 java.lang.String getClassName()
           
 java.lang.String getMethod()
           
static java.lang.String getNameForClass(java.lang.Class clazz)
          Get name for given class.
 java.lang.Object[] getParameters()
           
protected  java.lang.Class[] getParameterTypes()
           
static java.lang.Class[] getTypesForParameters(java.lang.Object[] args)
          Get array of argument types from array of objects
 java.lang.Object invoke(java.lang.Object target)
           
static java.lang.reflect.Method searchForMethod(java.lang.reflect.Method[] meths, java.lang.String meth, java.lang.Class[] args)
           
 void setClassName(java.lang.String name)
           
 void setMethod(java.lang.String name)
           
 void setParameters(java.lang.Object[] args)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

nullArgs

public static final java.lang.Object[] nullArgs

nullTypes

public static final java.lang.Class[] nullTypes

clazz

protected java.lang.String clazz

method

protected java.lang.String method

parameters

protected java.lang.Object[] parameters
Constructor Detail

SharedObjectMsg

protected SharedObjectMsg()

SharedObjectMsg

protected SharedObjectMsg(java.lang.String className,
                          java.lang.String methodName,
                          java.lang.Object[] parameters)
Method Detail

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName,
                                        java.lang.Object[] param)

createMsg

public static SharedObjectMsg createMsg(java.lang.String methodName,
                                        java.lang.Object[] param)

createMsg

public static SharedObjectMsg createMsg(java.lang.String methodName)

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName)

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName,
                                        java.lang.Object arg)

createMsg

public static SharedObjectMsg createMsg(java.lang.String methodName,
                                        java.lang.Object arg)

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName,
                                        java.lang.Object arg1,
                                        java.lang.Object arg2)

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName,
                                        java.lang.Object arg1,
                                        java.lang.Object arg2,
                                        java.lang.Object arg3)

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName,
                                        java.lang.Object arg1,
                                        java.lang.Object arg2,
                                        java.lang.Object arg3,
                                        java.lang.Object arg4)

createMsg

public static SharedObjectMsg createMsg(java.lang.String className,
                                        java.lang.String methodName,
                                        java.lang.Object arg1,
                                        java.lang.Object arg2,
                                        java.lang.Object arg3,
                                        java.lang.Object arg4,
                                        java.lang.Object arg5)

getClass

public static java.lang.Class getClass(java.lang.ClassLoader loader,
                                       java.lang.String name)
                                throws java.lang.ClassNotFoundException
Utility for getting a Class instance from a String class name. Calls Class.forName().

Parameters:
loader - the ClassLoader to use to load the given class
name - of Class to load
Returns:
Class instance found. If not found, a ClassNotFoundException is thrown
Throws:
java.lang.ClassNotFoundException - thrown if specified class is not found

getNameForClass

public static java.lang.String getNameForClass(java.lang.Class clazz)
Get name for given class.

Parameters:
clazz - the Class to retrieve the name from
Returns:
String name of given class

getTypesForParameters

public static java.lang.Class[] getTypesForParameters(java.lang.Object[] args)
Get array of argument types from array of objects

Parameters:
args - the arguments to get types for
Returns:
Class[] of types for objects in given Object array

findMethod

public static java.lang.reflect.Method findMethod(java.lang.Class clazz,
                                                  java.lang.String meth,
                                                  java.lang.Class[] args)
Find a Method instance on given class. This method searches for a method on the given class (first parameter), of the given name (second parameter), with arity defined by the third parameter. Calls searchForMethod to actually do the searching.

Parameters:
clazz - the Class to look on
meth - the method name to look for
args - the arguments that will be passed to the method on the invoke call
Returns:
Method instance found on given class. Null if none found.

searchForMethod

public static java.lang.reflect.Method searchForMethod(java.lang.reflect.Method[] meths,
                                                       java.lang.String meth,
                                                       java.lang.Class[] args)

findMethodRecursive

public static java.lang.reflect.Method findMethodRecursive(java.lang.Class clazz,
                                                           java.lang.String meth,
                                                           java.lang.Class[] args)
Find a Method instance on given class, and recursively search the class' superclass tree for given method.

Parameters:
clazz - the Class to look upon
meth - the String name of the method to look for
args - the array of Object arguments that will be passed to the method for execution
Returns:
Method instance if found, null if not found

checkForSerializable

public static void checkForSerializable(SharedObjectMsg aMsg)
                                 throws java.io.NotSerializableException
Check a given msg to verify that all Objects in args array implement the Serializable interface.

Parameters:
aMsg - the Message to check
Throws:
java.io.NotSerializableException - thrown if any objects in args array do not implement java.io.Serializable

getMethod

public final java.lang.String getMethod()

setMethod

public final void setMethod(java.lang.String name)

checkAlterMsg

protected void checkAlterMsg()
Check if it is permitted to alter the state of this message (args, class name, method name). Default: NOP; subclasses should override as appropriate. To disallow, throw a java.lang.RuntimeException.


getClassName

public final java.lang.String getClassName()

setClassName

public final void setClassName(java.lang.String name)

getParameters

public java.lang.Object[] getParameters()

setParameters

public final void setParameters(java.lang.Object[] args)

getParameterTypes

protected java.lang.Class[] getParameterTypes()

findMethod

protected final java.lang.reflect.Method findMethod(java.lang.Class clazz1)

findMethodRecursive

protected final java.lang.reflect.Method findMethodRecursive(java.lang.Class clazz1)

invoke

public final java.lang.Object invoke(java.lang.Object target)
                              throws java.lang.Exception
Throws:
java.lang.Exception

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object