Fire Workflow `org.fireflow.model.resource` 套件定義工作流引用的資源類型與管理機制。資源分為子流程、應用程式、表單、參與者四類,資源管理器負責從 XML 文件解析載入。
定義資源基本屬性:名稱 (`name`)、顯示名稱 (`displayName`)、描述 (`description`)。
實作 `IResource`,提供屬性存取與 `toString()` 重寫。
| 資源類別 | 核心屬性 | 用途說明 |
|---|---|---|
| SubWorkflowProcess | 引用另一個流程定義 | 子流程任務使用,保存被調用流程的引用資訊 |
| Application | handler (類別全名) | 後台自動化任務執行類,對應 Tool 類型 Task |
| Form | uri (表單地址) | 人工任務表單,引擎不處理表單邏輯,僅記錄 URI |
| Participant | assignmentHandlerClassName | 任務分配處理器,引擎調用獲取真實操作者 ID |

`ResourceManager4XmlFile` 實作 `IResourceManager`,提供 `parseResource(String filePath)` 和 `parseResource(InputStream in)` 重載方法。解析流程:
protected List<Form> loadForms(Element element) {
Element formsElement = Util4Parser.child(element, "Forms");
if (formsElement == null) return null;
List<Element> formElementList = Util4Parser.children(formsElement, "Form");
List<Form> forms = new Vector<Form>();
for (int i = 0; formElementList != null && i < formElementList.size(); i++) {
Element formElm = formElementList.get(i);
String name = formElm.attributeValue("Name");
Form form = new Form(name);
form.setDisplayName(formElm.attributeValue("DisplayName"));
form.setDescription(Util4Parser.elementAsString(formElm, "Description"));
form.setUri(Util4Parser.elementAsString(formElm, "Uri"));
forms.add(form);
}
return forms;
}
<Resources>
<Forms>
<Form Name="leaveForm" DisplayName="請假單">
<Description>員工請假申請表單</Description>
<Uri>/forms/leave.jsp</Uri>
</Form>
</Forms>
<Participants>...</Participants>
<Applications>...</Applications>
</Resources>
下一篇將介紹模組最後部分:流程定義文件的序列化與解析核心。