org.soybeanMilk.core.exe
类 Invoke

java.lang.Object
  继承者 org.soybeanMilk.core.exe.Invoke
所有已实现的接口:
java.io.Serializable, Executable

public class Invoke
extends java.lang.Object
implements Executable, java.io.Serializable

调用,它包含执行方法(Method对象)、方法参数信息解决对象提供者

作者:
earthAngry@gmail.com
另请参见:
Invoke.Arg, Invoke.ResolverProvider, 序列化表格

嵌套类摘要
static class Invoke.Arg
          方法的参数信息。
static interface Invoke.ResolverProvider
          解决对象(任意Java对象)的提供者,调用所需的解决对象将由它提供
 
构造方法摘要
Invoke()
          创建空的调用对象
Invoke(java.lang.String name, java.lang.reflect.Method method, Invoke.Arg[] args, java.io.Serializable resultKey)
          创建调用对象,它的方法是静态方法,因此不需要解决对象
Invoke(java.lang.String name, java.lang.reflect.Method method, Invoke.Arg[] args, java.io.Serializable resultKey, Invoke.ResolverProvider resolverProvider)
          创建调用对象
Invoke(java.lang.String name, java.lang.String methodName, Invoke.Arg[] args, java.io.Serializable resultKey, java.lang.Class<?> resolverClass)
          创建调用对象,它将自动查找方法对象
Invoke(java.lang.String name, java.lang.String methodName, Invoke.Arg[] args, java.io.Serializable resultKey, Invoke.ResolverProvider resolverProvider)
          创建调用对象,它将自动查找方法对象
 
方法摘要
 void execute(ObjectSource dataStore)
          执行
protected  java.lang.Object executeMethod(ObjectSource objectSource)
          执行该调用的方法并返回结果
static java.lang.reflect.Method findMethodThrow(java.lang.Class<?> clazz, java.lang.String methodName, int argNums)
          根据方法名称及方法参数数目查找类的公开方法,找不到则会抛出异常
 Invoke.Arg[] getArgs()
           
 java.lang.reflect.Method getMethod()
           
protected  java.lang.Object[] getMethodArguments(ObjectSource objectSource)
          从对象源中取得方法的参数值数组
 java.lang.String getName()
          取得名称,该名称应该可以唯一标识这个可执行对象
protected  java.lang.Object getResolver(ObjectSource objectSource)
          取得本调用所依赖的解决对象
 Invoke.ResolverProvider getResolverProvider()
           
 java.io.Serializable getResultKey()
           
protected  void saveMethodResult(java.io.Serializable key, java.lang.Object result, ObjectSource objectSource)
          保存方法调用结果到对象源,如果对象源或者keynull,则什么也不做
 void setArgs(Invoke.Arg[] args)
           
 void setMethod(java.lang.reflect.Method method)
           
 void setName(java.lang.String name)
           
 void setResolverProvider(Invoke.ResolverProvider resolverProvider)
           
 void setResultKey(java.io.Serializable resultKey)
           
 java.lang.String toString()
           
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Invoke

public Invoke()
创建空的调用对象


Invoke

public Invoke(java.lang.String name,
              java.lang.String methodName,
              Invoke.Arg[] args,
              java.io.Serializable resultKey,
              Invoke.ResolverProvider resolverProvider)
创建调用对象,它将自动查找方法对象

参数:
name -
methodName -
args -
resultKey -
resolverProvider -
另请参见:
Invoke(String, Method, Arg[], Serializable, ResolverProvider)

Invoke

public Invoke(java.lang.String name,
              java.lang.String methodName,
              Invoke.Arg[] args,
              java.io.Serializable resultKey,
              java.lang.Class<?> resolverClass)
创建调用对象,它将自动查找方法对象

参数:
name -
methodName - 方法名称
args -
resultKey -
resolverClass - 解决对象类
另请参见:
Invoke(String, Method, Arg[], Serializable, ResolverProvider)

Invoke

public Invoke(java.lang.String name,
              java.lang.reflect.Method method,
              Invoke.Arg[] args,
              java.io.Serializable resultKey)
创建调用对象,它的方法是静态方法,因此不需要解决对象

另请参见:
Invoke(String, Method, Arg[], Serializable, ResolverProvider)

Invoke

public Invoke(java.lang.String name,
              java.lang.reflect.Method method,
              Invoke.Arg[] args,
              java.io.Serializable resultKey,
              Invoke.ResolverProvider resolverProvider)
创建调用对象

参数:
name - 调用名称
method - 调用将执行的方法
args - 参数信息,如果执行方法没有参数,可以将它设置为null,你只需要设置参数信息中的key或者value属性,这个构造方法会自动设置参数类型属性
resultKey - 方法执行结果的存储关键字,如果设置为null,无论执行方法是否有返回结果都不会被存储;相反,则都会存储(无返回结果的按null存储)
resolverProvider - 解决对象提供者,如果方法是静态的,可以将它设置为null
方法详细信息

execute

public void execute(ObjectSource dataStore)
             throws ExecuteException
从接口 Executable 复制的描述
执行

指定者:
接口 Executable 中的 execute
参数:
dataStore - 对象源,执行依赖的所有参数值都从它获取、结果也都保存到它里面
抛出:
ExecuteException

getName

public java.lang.String getName()
从接口 Executable 复制的描述
取得名称,该名称应该可以唯一标识这个可执行对象

指定者:
接口 Executable 中的 getName
返回:

setName

public void setName(java.lang.String name)

getResolverProvider

public Invoke.ResolverProvider getResolverProvider()

setResolverProvider

public void setResolverProvider(Invoke.ResolverProvider resolverProvider)

getMethod

public java.lang.reflect.Method getMethod()

setMethod

public void setMethod(java.lang.reflect.Method method)

getArgs

public Invoke.Arg[] getArgs()

setArgs

public void setArgs(Invoke.Arg[] args)

getResultKey

public java.io.Serializable getResultKey()

setResultKey

public void setResultKey(java.io.Serializable resultKey)

executeMethod

protected java.lang.Object executeMethod(ObjectSource objectSource)
                                  throws java.lang.IllegalAccessException,
                                         java.lang.IllegalArgumentException,
                                         java.lang.reflect.InvocationTargetException
执行该调用的方法并返回结果

参数:
objectSource -
返回:
抛出:
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.lang.reflect.InvocationTargetException

getMethodArguments

protected java.lang.Object[] getMethodArguments(ObjectSource objectSource)
从对象源中取得方法的参数值数组

参数:
objectSource -
返回:
抛出:
ExecuteException

toString

public java.lang.String toString()
覆盖:
java.lang.Object 中的 toString

saveMethodResult

protected void saveMethodResult(java.io.Serializable key,
                                java.lang.Object result,
                                ObjectSource objectSource)
保存方法调用结果到对象源,如果对象源或者keynull,则什么也不做

参数:
key -
result -
objectSource -

getResolver

protected java.lang.Object getResolver(ObjectSource objectSource)
取得本调用所依赖的解决对象

参数:
objectSource - 本次调用的对象源,默认实现是从调用的属性取得解决对象的,所以在这个实现中没有用到
返回:

findMethodThrow

public static java.lang.reflect.Method findMethodThrow(java.lang.Class<?> clazz,
                                                       java.lang.String methodName,
                                                       int argNums)
根据方法名称及方法参数数目查找类的公开方法,找不到则会抛出异常

参数:
clazz - 查找目标类
methodName - 方法名
argNums - 参数数目
返回: