`
yuanyao
  • 浏览: 149061 次
  • 性别: Icon_minigender_1
  • 来自: 就那小山沟
社区版块
存档分类
最新评论

org.jbpm.context.def && org.jbpm.context.exe

    博客分类:
  • Jbpm
阅读更多
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(抽象类),一个变量容器,提供了设置、获取、添加、删除变量等方法.
分享到:
评论

相关推荐

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    JBPM帮助文档供大家学习

    org.jbpm.api the jBPM API, Start by creating a Configuration, build a ProcessEngine from that, and then you can find the workflow methods on the services like ExecutionService, TaskService. org.jbpm....

    JBPM4 java源代码分包详解JBPM4

    8. **org.jbpm.pvm.internal.env**: 包含IoC(Inversion of Control)系统,由`Context`、`Environment`和`EnvironmentFactory`组成,以及事务管理和依赖注入相关类。 9. **org.jbpm.pvm.internal.hibernate**: 与...

    Jbpm源代码分包详解

    `org.jbpm.pvm.internal.env`包包含了IoC(Inversion of Control)系统,包括`Context`、`Environment`和`EnvironmentFactory`,还有事务管理`Transaction`和依赖绑定`WireObject`。 `org.jbpm.pvm.internal....

    jbpm-jpdl-src.rar

    9. **org.jbpm.context**:上下文管理,处理流程中的变量和环境信息。 10. **org.jbpm.test**:测试用例,这些可以帮助我们了解jBPM的正确使用方式和预期行为。 通过深入研究这些源代码,开发者可以了解到如何利用...

    Jbpm类结构

    `org.jbpm.context.exe.variableinstance.HibernateStringInstance` 此类用于存储字符串类型的变量实例。包括以下属性: - `value`: 对象类型,表示变量的值。 #### 10. `org.jbpm.context.exe.VariableInstance...

    使用JBoss.jBPM的业务流程管理

    ### 使用JBoss.jBPM的业务流程管理 #### 一、引言 随着企业环境的日益复杂和技术的进步,业务流程管理(Business Process Management,BPM)已成为提高组织效率和响应能力的关键工具。JBoss.jBPM是JBoss提供的一个...

    jbpm所南的新sql脚本mysql.identity.script.jbpm321

    jbpm所南的新sql脚本mysql.identity.script.jbpm321

    jbpm4.2 src(JBPM源码)

    源码中,`org.jbpm.process.core` 和 `org.jbpm.process.instance` 包含了大量的类,如ProcessRuntime、ProcessInstance、NodeInstance等,它们是理解流程执行机制的关键。 2. **工作流服务(WorkItem Handler)**...

    JBPM4.4所需要的包.rar

    标题中的"JBPM4.4所需要的包.rar"表明这是一个与JBPM 4.4版本相关的压缩文件,包含了一些必要的库和组件。JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,用于设计、执行和管理...

    jbpm流程控制初学者容易接触的domo

    import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; import junit.framework.TestCase; public class JbpmTest extends TestCase{ ...

    jBPM3 2 3数据库表说明 pdf

    - `U`: 超级状态节点,由`org.jbpm.graph.def.SuperState`实现。 - **NAME_**:流程节点名称,用于识别各个节点。 - **SUBPROCESSDEFINITION_**:当节点类型为`ProcessState`时,此字段表示该节点是另一个流程模版...

    工作流与JBPM开发实例精解.docx

    import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; import org.jbpm.kernel.KnowledgeBase; import org.jbpm.kernel....

    PacktPub.jBPM.Developer.Guide.Dec.2009.rar

    《jBPM Developer Guide》是Packt Publishing在2009年12月发布的一本技术书籍,专门针对jBPM(Java Business Process Management)框架的开发者。这本书旨在帮助读者深入理解和掌握jBPM,一个开源的工作流和业务流程...

    JBPM中文文档

    JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能。这份中文文档主要涵盖了JBPM的部署、配置以及一些基础概念,如起始任务。 1. **JBPM部署**...

    jbpm4.3-src.zip

    jbpm4.3-src.zip是一个包含jbpm 4.3版本源代码的压缩包,对于开发者来说,这是一个宝贵的资源,可以深入理解jbpm的工作原理,从而更好地利用它进行业务流程管理(BPM)系统的开发和定制。jbpm是一个开源的工作流管理...

    Business.Process.Management.with.JBoss.jBPM

    《业务流程管理与JBoss jBPM:面向业务分析师的实际指南》是一本深入探讨如何使用JBoss jBPM实现业务流程自动化的书籍。本书由Matt Cumberlidge撰写,他是一位经验丰富的业务分析师,曾在一家全球领先的FTSE100信息...

    jbpm所需包的整理

    backport-concurrent.jar、jboss-j2ee.jar、jboss-retro-1.1.0-rt.jar、jbpm-identity.jar、jbpm-jpdl.jar、jcr-2.0.jar、log4j-1.2.13.jar、mysql-connector-java-5.0.8-bin.jar。自己也正在学习中,包的正确性未...

    Maven3+JBPM4.4+mysql helloworld例子

    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring-context.xml"}) public class ...

Global site tag (gtag.js) - Google Analytics