浏览 1640 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-31
org.jbpm.context.def包下:
-org.jbpm.context.def --Access.java --ContextDefinition.java --VariableAccess.java --ContextDefinition.hbm.xml --VariableAccess.hbm.xml Access控制对Variable变量的访问控制,访问权限有read,write,required,还有一个lock参数,一个很简单的类,下面来看一下equals()方法,代码如下: public boolean equals(Object object) { if (object instanceof Access) { //将object强制转换为Access Access other = (Access) object; //Access的equals方法,比较object对象的各种权限,如下,是否可读,是 //否可写,是否被请求,是否锁住了... return (isReadable()==other.isReadable()) && (isWritable()==other.isWritable()) && (isRequired()==other.isRequired()) && (isLock()==other.isLock()); } else { return false; } } VariableAccess与jbpm数据库的JBPM_VARIABLEACCESS表相对应,JBPM_VARIABLEACCESS表有四个字段,ID_为VariableAccess的标识,VARIABLENAME_为变量的名字,ACCESS_为AccessType类,位置在org.jbpm.db.hibernate.AccessType,MAPPEDNAME_为被映射的名字. ContextDefinition继承ModuleDefinition,代码很简单,ModuleDefinition会在后面介绍. org.jbpm.context.exe包下: -org.jbpm.context.exe --ContextInstance.java --ContextInstance.hbm.xml --Converter.java --jbpm.varmapping.xml --JbpmType.java --JbpmTypeMatcher.java --TokenVariableMap.java --TokenVariableMap.hbm.xml --VariableContainer.java --VariableInstance.hbm.xml --VariableInstance.java Converter是一个转换器接口,提供了三个方法的定义,supports(),convert(),revert(),supports()方法判断转换器是否支持以给的类型,支持返回true,convert()转换方法,revert()还原方法. ContextInstance是ModuleInstance的子类(ModuleInstance将会在后面介绍),ContextInstance类是对变量variable的一些操作,比如说创建variable,获取variable,添加variable,删除variable等等. JbpmTypeMatcher是一个借口,定义了matches()方法, jbpm.varmapping.xml定义了使用何种类完成某种Java对象转换为jBPM中可存储的数据库实例. JbpmType指定jbpm如何支持一个JAVA类型,getJbpmTypes()方法通过读取jbpm.varmapping.xml,获得一个jbpmType的List. VariableInstance是一个抽象类,在数据库中,它作为一个基类存储变量值。对应于JBPM数据库表JBPM_VARIABLEINSTANCE。 VariableInstance的create()方法代码: public static VariableInstance create(Token token, String name, Object value) { VariableInstance variableInstance = null; //假如value为空 if (value==null) { //创建NullInstance(NullInstance是VariableInstance的子类) variableInstance = new NullInstance(); } else { //不为空,调用createVariableInstance()方法,createVariableInstance()方法获得JbpmType匹配value,返回一variableInstance variableInstance = createVariableInstance(value); } //设置token variableInstance.token = token; //设置名字 variableInstance.name = name; //设置流程实例 variableInstance.processInstance = (token!=null ? token.getProcessInstance() : null ); if (token!=null) { token.addLog(new VariableCreateLog(variableInstance)); } variableInstance.setValue(value); return variableInstance; } VariableContainer(抽象类),一个变量容器,提供了设置、获取、添加、删除变量等方法. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |