org.xworker
类 Action

java.lang.Object
  继承者 org.xworker.util.Semaphore
      继承者 org.xworker.Action

public class Action
extends Semaphore

动作是可以运行的程序,是事物的另一种形态。 Action类自身只支持Java代码定义的动作,可以动态编译和执行Java代码。 通过Action类也可以实现调用其他编程语言的动作,所有其他形式的动作本身要实现run方法,其中run方法可以用 Java来实现。

作者:
zyx

嵌套类摘要
(专用软件包)  class Action.ActionResult
           
 
字段摘要
 java.lang.Class actionClass
          编译后并且装载了的类
 boolean changed
          动作的定义是否已经改变
 java.lang.String classFileName
          编译后的类存放的目录
 java.lang.ClassLoader classLoader
          Java类装载器,动态装载类
 java.lang.String className
          编译后的类名
 java.lang.String classPath
          编译Java源文件时要用到的类库路径
 java.lang.String code
          代码
 java.util.List<ThingEntry> contexts
          动作事物的上下文列表
 java.lang.String fileName
          保存Java代码的文件名
(专用软件包)  boolean isJava
          是否是Java程序
(专用软件包)  boolean isSynchronized
          是否要同步执行,如果是那么调用这个动作事物将会被同步执行
static java.lang.String[] javaKeyWords
          Java关键字列表,不能作为类和包的名称
 long lastModified
          最后一次修改时间,用来判断是否事物已经更新
private static org.apache.commons.logging.Log log
          日志
 java.lang.String methodName
          要运行的方法名
(专用软件包)  java.lang.String otherActionPath
          其他事物的路径
 java.lang.String outerClassName
          外部的Java类名
 java.lang.String packageName
          类的包名
(专用软件包)  java.util.List<Action.ActionResult> results
          子动作列表
 ThingEntry thingEntry
          定义动作的事物
(专用软件包)  boolean throwException
          是否抛出异常当对动作执行发生异常时
(专用软件包)  boolean useOtherAction
          是否使用其他事物定义的动作
 boolean useOuterJava
          是否使用系统外部的Java,即使用其他Java组件
(专用软件包)  java.util.Map<java.lang.String,java.lang.Object> userData
          用户数据,在代码或脚本理可以设置和Action绑定的数据
private static World world
           
 
构造方法摘要
Action(Thing thing)
          构造函数,传入定义动作的事物。
 
方法摘要
private  java.lang.Throwable doContextMethod(java.util.List<ThingEntry> contexts, ActionContext actionContext, java.lang.String methodName, java.lang.Throwable exception)
          执行上下文的成功或者失败的方法。
 java.lang.ClassLoader getClassLoader()
          初始化上下文。
static java.lang.String getClassName(java.lang.String className)
          返回正确的包名,因在XWorker包名和类名没有约束,但java的包名和类名不能是关键字,所以修改,在关键字前加t。
 java.lang.Object getData(java.lang.String key)
          通过键值获取数据。
 Thing getThing()
           
private  void init()
           
private  void initContext(Thing context, ActionContext actionContext)
          初始化上下文。
 java.lang.Object run()
           
 java.lang.Object run(ActionContext context)
           
 java.lang.Object run(ActionContext context, java.util.Map<java.lang.String,java.lang.Object> parameters)
           
 java.lang.Object run(java.lang.String name, ActionContext context, java.util.Map<java.lang.String,java.lang.Object> parameters, boolean isSubAction)
          执行动作。
 void setData(java.lang.String key, java.lang.Object data)
          设置数据。
 
从类 org.xworker.util.Semaphore 继承的方法
finished, use
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

log

private static org.apache.commons.logging.Log log
日志


world

private static World world

javaKeyWords

public static final java.lang.String[] javaKeyWords
Java关键字列表,不能作为类和包的名称


thingEntry

public ThingEntry thingEntry
定义动作的事物


isJava

boolean isJava
是否是Java程序


throwException

boolean throwException
是否抛出异常当对动作执行发生异常时


isSynchronized

boolean isSynchronized
是否要同步执行,如果是那么调用这个动作事物将会被同步执行


lastModified

public long lastModified
最后一次修改时间,用来判断是否事物已经更新


useOtherAction

boolean useOtherAction
是否使用其他事物定义的动作


otherActionPath

java.lang.String otherActionPath
其他事物的路径


contexts

public java.util.List<ThingEntry> contexts
动作事物的上下文列表


classLoader

public java.lang.ClassLoader classLoader
Java类装载器,动态装载类


classPath

public java.lang.String classPath
编译Java源文件时要用到的类库路径


className

public java.lang.String className
编译后的类名


classFileName

public java.lang.String classFileName
编译后的类存放的目录


packageName

public java.lang.String packageName
类的包名


fileName

public java.lang.String fileName
保存Java代码的文件名


code

public java.lang.String code
代码


methodName

public java.lang.String methodName
要运行的方法名


useOuterJava

public boolean useOuterJava
是否使用系统外部的Java,即使用其他Java组件


outerClassName

public java.lang.String outerClassName
外部的Java类名


actionClass

public java.lang.Class actionClass
编译后并且装载了的类


changed

public boolean changed
动作的定义是否已经改变


userData

java.util.Map<java.lang.String,java.lang.Object> userData
用户数据,在代码或脚本理可以设置和Action绑定的数据


results

java.util.List<Action.ActionResult> results
子动作列表

构造方法详细信息

Action

public Action(Thing thing)
构造函数,传入定义动作的事物。

参数:
thing - 定义动作的事物
方法详细信息

init

private void init()

run

public java.lang.Object run()

run

public java.lang.Object run(ActionContext context)

run

public java.lang.Object run(ActionContext context,
                            java.util.Map<java.lang.String,java.lang.Object> parameters)

run

public java.lang.Object run(java.lang.String name,
                            ActionContext context,
                            java.util.Map<java.lang.String,java.lang.Object> parameters,
                            boolean isSubAction)
执行动作。

参数:
methodName - 方法名称
context - 动作的上下文
isSubAction - 是否是子动作
返回:
执行的结果

doContextMethod

private java.lang.Throwable doContextMethod(java.util.List<ThingEntry> contexts,
                                            ActionContext actionContext,
                                            java.lang.String methodName,
                                            java.lang.Throwable exception)
执行上下文的成功或者失败的方法。

参数:
selfContexts -
binding -
methodName -
exception -
返回:

initContext

private void initContext(Thing context,
                         ActionContext actionContext)
初始化上下文。

参数:
context -
actionContext -

getClassLoader

public java.lang.ClassLoader getClassLoader()
初始化上下文。

参数:
thingContext - 事物定义的上下文
context - 动作上下文
datas - 变量

getClassName

public static java.lang.String getClassName(java.lang.String className)
返回正确的包名,因在XWorker包名和类名没有约束,但java的包名和类名不能是关键字,所以修改,在关键字前加t。

参数:
className -
返回:

setData

public void setData(java.lang.String key,
                    java.lang.Object data)
设置数据。

参数:
key - 键
data - 值

getData

public java.lang.Object getData(java.lang.String key)
通过键值获取数据。

参数:
key - 键
返回:
数据

getThing

public Thing getThing()