快速业务通道

Fire Workflow源码分析——(基本组成)(4) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

Fire Workflow源码分析——(基本组成)(4)

时间:2011-10-28 博客园 Leshem

这次讲包org.fireflow.model.resource。首先看一下这个包的整体类图。

资源这块Fire Workflow主要定义了资源和资源管理两大块。其中对于资源的描述分为子流程、应用、 表单和参与者,这里本人对把子流程作为资源的定义不甚理解,而前面介绍的包org.fireflow.model中又 含有WorkflowProcess,个人觉得是不是应该统一比较好?资源管理方面只是简单的实现了一个解析资源 文件(XML格式)的类,这块还有进一步完善的空间。下面对每一部分进行介绍。

IResource:工作流引用的资源。

Fire Workflow源码分析——(基本组成)(4)(2)

时间:2011-10-28 博客园 Leshem

必须实现的方法:主要针对于资源名称,显示名称以及描述等。

AbstractResource:抽象类主要实现IResource接口。

 

基本元素包括资源名称、资源显示名称和资源描述。并重写了toString()方法。

SubWorkflowProcess:子流程,目前也被定义为资源的一种。保存对另一个流程引用信息。

Application:后台程序。

handler:后台程序的类名。

Form:表单。

uri:记录表单的地址,工作流引擎本身不处理表单。

Participant:参与者。

Fire Workflow源码分析——(基本组成)(4)(3)

时间:2011-10-28 博客园 Leshem

assignmentHandlerClassName:任务分配句柄的类名。Fire workflow引擎调用该句柄获得真正的操作 者ID。

IResourceManager:资源管理接口。主要定义如何来获得资源。

ResourceManager4XmlFile:解析xml格式的资源文件来获得资源。

通过对xml格式资源文件的解析,获得forms、participants、applications资源。解析函数有重载的 parseResource()方法,变量参数分别为文件路径和文件输入流。利用org.dom4j包对文件进行解析。 parseResource()中调用了三个load方法,分别提取三类元素。举个loadForms()的例子吧。

1protected List<Form> loadForms( Element element)  { 2         Element formsElement = Util4Parser.child(element, "Forms"); 3        if  (formsElement==null)return null; 4        List<Element> formElementList  = Util4Parser.children(formsElement, "Form"); 5        List<Form> forms  = new Vector<Form>(); 6        for (int i=0; formElementList!=null  && i<formElementList.size();i++){ 7            Element formElm  = formElementList.get(i); 8            String name =  formElm.attributeValue("Name"); 9            Form form = new Form (name); 10            form.setDisplayName(formElm.attributeValue ("DisplayName")); 11            form.setDescription (Util4Parser.elementAsString(formElm, "Description")); 12             form.setUri(Util4Parser.elementAsString(formElm, "Uri")); 13             forms.add(form); 14        } 15        return forms; 16} 17

Xml资源文件的格式很简单,通过查找element和attribute就可以解析了。这里的Util4Parser是Fire Workflow自定义的解析类。其他两种资源的load过程基本一致。

下次介绍model项目的最后一部分,关于文件解析和序列化的。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号