这次讲包org.fireflow.model.resource。首先看一下这个包的整体类图。
资源这块Fire Workflow主要定义了资源和资源管理两大块。其中对于资源的描述分为子流程、应用、表单和参与者,这里本人对把子流程作为资源的定义不甚理解,而前面介绍的包org.fireflow.model中又含有WorkflowProcess,个人觉得是不是应该统一比较好?资源管理方面只是简单的实现了一个解析资源文件(XML格式)的类,这块还有进一步完善的空间。下面对每一部分进行介绍。
IResource:工作流引用的资源。
必须实现的方法:主要针对于资源名称,显示名称以及描述等。
AbstractResource:抽象类主要实现IResource接口。
基本元素包括资源名称、资源显示名称和资源描述。并重写了toString()方法。
SubWorkflowProcess:子流程,目前也被定义为资源的一种。保存对另一个流程引用信息。
Application:后台程序。
handler:后台程序的类名。
Form:表单。
uri:记录表单的地址,工作流引擎本身不处理表单。
Participant:参与者。
assignmentHandlerClassName:任务分配句柄的类名。Fire workflow引擎调用该句柄获得真正的操作者ID。
IResourceManager:资源管理接口。主要定义如何来获得资源。
ResourceManager4XmlFile:解析xml格式的资源文件来获得资源。
通过对xml格式资源文件的解析,获得forms、participants、applications资源。解析函数有重载的parseResource()方法,变量参数分别为文件路径和文件输入流。利用org.dom4j包对文件进行解析。parseResource()中调用了三个load方法,分别提取三类元素。举个loadForms()的例子吧。
Xml资源文件的格式很简单,通过查找element和attribute就可以解析了。这里的Util4Parser是Fire Workflow自定义的解析类。其他两种资源的load过程基本一致。
下次介绍model项目的最后一部分,关于文件解析和序列化的。