Class SharedObjectMsg

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

public class SharedObjectMsg extends Object implements 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:
  • Field Details

    • nullArgs

      public static final Object[] nullArgs
    • nullTypes

      public static final Class[] nullTypes
    • clazz

      protected String clazz
    • method

      protected String method
    • parameters

      protected Object[] parameters
  • Constructor Details

    • SharedObjectMsg

      protected SharedObjectMsg()
    • SharedObjectMsg

      protected SharedObjectMsg(String className, String methodName, Object[] parameters)
  • Method Details

    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName, Object[] param)
    • createMsg

      public static SharedObjectMsg createMsg(String methodName, Object[] param)
    • createMsg

      public static SharedObjectMsg createMsg(String methodName)
    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName)
    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName, Object arg)
    • createMsg

      public static SharedObjectMsg createMsg(String methodName, Object arg)
    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName, Object arg1, Object arg2)
    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName, Object arg1, Object arg2, Object arg3)
    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName, Object arg1, Object arg2, Object arg3, Object arg4)
    • createMsg

      public static SharedObjectMsg createMsg(String className, String methodName, Object arg1, Object arg2, Object arg3, Object arg4, Object arg5)
    • getClass

      public static Class getClass(ClassLoader loader, String name) throws 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:
      ClassNotFoundException - thrown if specified class is not found
    • getNameForClass

      public static String getNameForClass(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 Class[] getTypesForParameters(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 Method findMethod(Class clazz, String meth, 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 Method searchForMethod(Method[] meths, String meth, Class[] args)
    • findMethodRecursive

      public static Method findMethodRecursive(Class clazz, String meth, 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 NotSerializableException
      Check a given msg to verify that all Objects in args array implement the Serializable interface.
      Parameters:
      aMsg - the Message to check
      Throws:
      NotSerializableException - thrown if any objects in args array do not implement java.io.Serializable
    • getMethod

      public final String getMethod()
    • setMethod

      public final void setMethod(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 String getClassName()
    • setClassName

      public final void setClassName(String name)
    • getParameters

      public Object[] getParameters()
    • setParameters

      public final void setParameters(Object[] args)
    • getParameterTypes

      protected Class[] getParameterTypes()
    • findMethod

      protected final Method findMethod(Class clazz1)
    • findMethodRecursive

      protected final Method findMethodRecursive(Class clazz1)
    • invoke

      public final Object invoke(Object target) throws Exception
      Throws:
      Exception
    • toString

      public String toString()
      Overrides:
      toString in class Object