程序包 org.xmeta

类 Action


  • public class Action
    extends Semaphore

    动作是由模型转化而来的,动作是可以执行的,是把模型当作程序来执行的方法。

    本动作能够直接解释执行的模型是类型为JavaAction的模型,JavaAction调用Java代码。 其它类型的动作,比如Groovy等脚本语言,可以用JavaAction来实现。

    作者:
    zyx
    • 字段详细资料

      • javaKeyWords

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

        public static final byte SOURCE_LIB
        源码类型-类库
        另请参阅:
        常量字段值
      • SOURCE_THINGMANAGER

        public static final byte SOURCE_THINGMANAGER
        源码类型-模型管理器
        另请参阅:
        常量字段值
      • SOURCE_THING

        public static final byte SOURCE_THING
        源码类型-模型
        另请参阅:
        常量字段值
      • thingEntry

        public ThingEntry thingEntry
        定义动作的模型
      • lastModified

        public long lastModified
        最后一次修改时间,用来判断是否模型已经更新
    • 构造器详细资料

      • Action

        public Action​(Thing thing)
        构造函数,传入定义动作的模型。
        参数:
        thing - 定义动作的模型
    • 方法详细资料

      • checkChanged

        public void checkChanged()
        检查动作是否已经变更。
      • getClassTargetDirectory

        public String getClassTargetDirectory()
      • getActionClass

        public Class getActionClass​(ActionContext actionContext)
        返回动作的类,如果存在。有些动作可能会返回null。
        参数:
        actionContext - 变量上下文
        返回:
        返回Action对应的类
      • updateCompileTime

        public void updateCompileTime()
      • getMethod

        public Method getMethod()
      • run

        public final <T> T run()
      • exec

        public final <T> T exec​(Object... params)
      • runArrayParams

        public final <T> T runArrayParams​(ActionContext actionContext,
                                          Object[] params_,
                                          Object caller,
                                          boolean isSubAction)
      • doThingContextMethod

        public static Throwable doThingContextMethod​(List<Thing> contexts,
                                                     ActionContext actionContext,
                                                     String methodName,
                                                     Throwable exception,
                                                     Object result)
        执行上下文的成功或者失败的方法。
        参数:
        contexts - 上下文列表
        actionContext - 变量上下文
        methodName - 方法名称
        exception - 抛出的异常
        result - 运行结果
        返回:
        如果动作可以抛出异常则抛出异常
      • initContext

        public static void initContext​(Action action,
                                       Thing context,
                                       ActionContext actionContext)
        执行动作上下文的inherit或init方法。
        参数:
        action - 动作
        context - 上下文模型
        actionContext - 变量上下文
      • getCompileClassPath

        public String getCompileClassPath()
      • getClassName

        public static String getClassName​(String className)
        返回正确的包名,因在X-Meta包名和类名没有约束,但java的包名和类名不能是关键字,所以修改,在关键字前加t。
        参数:
        className - 类名
        返回:
        返回完整类名
      • setData

        public void setData​(String key,
                            Object data)
        设置数据。
        参数:
        key - 键
        data - 值
      • getData

        public Object getData​(String key)
        通过键值获取数据。
        参数:
        key - 键
        返回:
        数据
      • getThing

        public Thing getThing()
      • isNeedRecompile

        public boolean isNeedRecompile()
        返回是否需要重新编译。
      • updateClassCompileTime

        public static void updateClassCompileTime​(String classFileName,
                                                  String className,
                                                  long time)
      • getThrowableRecordCount

        public static int getThrowableRecordCount()
      • setThrowableRecordCount

        public static void setThrowableRecordCount​(int throwableRecordCount)
      • getActionClass

        public Class<?> getActionClass()
      • setActionClass

        public void setActionClass​(Class<?> actionClass)
      • isChanged

        public boolean isChanged()
      • setChanged

        public void setChanged​(boolean changed)
      • isJava

        public boolean isJava()
      • getLastModified

        public long getLastModified()
      • getOtherActionPath

        public String getOtherActionPath()
      • getClassName

        public String getClassName()
      • getClassFileName

        public String getClassFileName()
      • getPackageName

        public String getPackageName()
      • getFileName

        public String getFileName()
      • getCode

        public String getCode()
      • getOuterAction

        public Action getOuterAction()
      • setMethod

        public void setMethod​(Method method)