X-Meta引擎是使用Java编写的,因此实际上运行的是Java程序,事物模型也是在Java代码中解释执行的,因此本文介绍如何在Java代码中处理事物模型。

事物模型放在那里

    可以根据需要把事物放到一下三个位置。

  • 可以放到Java的Classpath下
    和Java的类一样,事物模型可以放到Classpath下,可以放到jar里。
     
  • 可以放到XWorker的项目目录下
    对于事物模型库或项目,可以放到XWorker指定的项目目录下。
     
  • 可以放到其他目录下
    可以在XWorker的事物管理器导入其他目录下的项目。

在代码中获取事物模型

package org.xmeta.example;
 
import org.xmeta.Action;
import org.xmeta.ActionContext;
import org.xmeta.Thing;
import org.xmeta.World;
 
public class Main{
     
    public static void main(String args[]){
        //初始化World,World是获取事物的容器
        World world = World.getInstance();

        //World的路径,一般是xworker的路径,如果事物全部都在jar里,
        //那么可以指定一个运行是的临时目录,用于存放编译结果等临时文件
        world.init(".");
         
        //获取事物,事物的路径规则同Java类,这里要带上包名
        Thing person = world.getThing("org.xmeta.example.PersonWithAction");
 
        //......,其他操作
    }
}

在代码里操作事物

//在代码中获取一个事物
Thing person = world.getThing("org.xmeta.example.PersonWithAction");
//新建一个事物
Thing person = new Thing("Person");

//可以读取和设置属性
Object value = person.get("key");
person.set("key", value);

//可以通过getXXX读取xxx类型的属性
int intValue = person.getInt("key");
boolean booleanValue = person.getBoolean("key");

//获取子事物
List<Thing> childs = person.getChilds();

//通过doAction执行事物的行为
person.doAction("method");
//ActionContext是变量上下文
person.doAction("method", new ActionContext());
//传入参数
Map<String, Object> params = new HashMap<String,Object>();
person.doAction("method", new ActionContext(),  params);

    以上是在Java代码中处理事物模型的主要方法,更详细的内容可以参看X-Meta引擎的Java API

 

Copyright ©  2007-2019 XWorker.org  版权所有  沪ICP备08000575号