免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
osworkflow api 之 com.opensymphony.workflow
 

學(xué)習(xí)應(yīng)用osworkflow 理解應(yīng)用osworkflow-2.7.0.jar是必須的。下面我就個(gè)人理解談?wù)剬?duì)osworkflow-2.7.0.jar的認(rèn)識(shí)。由于個(gè)人目前學(xué)習(xí)主要側(cè)重于輕量級(jí)J2EE。所以對(duì)EJB這部分認(rèn)識(shí)不深也就不妄加評(píng)價(jià)了。而且每個(gè)包都是我自己所能理解或者自己認(rèn)為比較能常用的類(lèi)和接口進(jìn)行初步說(shuō)明。不足之處請(qǐng)見(jiàn)諒!另外此文也是搜索了大量了網(wǎng)絡(luò)資源融合個(gè)人理解所寫(xiě)。所以會(huì)出現(xiàn)此文中的某一部分與網(wǎng)上的其他文章類(lèi)似的情況。最終目的在于大家共同學(xué)習(xí)共同進(jìn)步,如果你看了此文,對(duì)osworkflow有了新認(rèn)識(shí),請(qǐng)不要感激我,先感激現(xiàn)在的網(wǎng)絡(luò)資源吧~~GOOD LUCK!

這個(gè)jar包主要包括如下幾個(gè)大分類(lèi):

com.opensymphony.workflow

主要包括核心的工作流接口和類(lèi)

先說(shuō)最最核心的就是:

*的為我認(rèn)為需要重點(diǎn)把握理解的方法。

AbstractWorkflow(類(lèi)):AbstractWorkflow類(lèi)是workflow接口的最基本的實(shí)現(xiàn)。

*1.public int[] getAvailableActions(long id, Map inputs)方法:

返回當(dāng)前可以執(zhí)行的Ation。

  • 得到工作流流程實(shí)例。
  • 得到工作流實(shí)例的定義。
  • 得到工作流實(shí)例的PropertySet
  • 得到工作流的當(dāng)前Step。
  • 產(chǎn)生TransientVars。
  • 得到Global Actions。
  • 判斷可以執(zhí)行的Global Action增加到可執(zhí)行Action列表中。
  • 獲得當(dāng)前Steps中的可執(zhí)行Action并添加到可執(zhí)行Action列表中。
  • 返回可執(zhí)行Actions。

2. public void setConfiguration(Configuration configuration)方法:

設(shè)置工作流配置方法。

3.public Configuration getConfiguration()方法:

返回工作流配置方法,如果沒(méi)有獲得配置信息,初始化配置信息。

4.public List getCurrentSteps(long id)

獲得工作流當(dāng)前所在步驟。

5.public int getEntryState(long id):

獲得工作流的狀態(tài)。

6.public List getHistorySteps(long id)

獲得工作流的歷史步驟。

7. public Properties getPersistenceProperties()

獲得設(shè)置的持久化參數(shù)。

8.public PropertySet getPropertySet(long id)

得到工作流的PropertySet,調(diào)用store中的方法。

9.public List getSecurityPermissions(long id)

得到工作流當(dāng)前Steppermissions。

10.public WorkflowDescriptor getWorkflowDescriptor(String workflowName)

得到工作流的定義。

11.public String getWorkflowName(long id)

根據(jù)工作流實(shí)例返回工作流定義名。

12. public String[] getWorkflowNames()

返回系統(tǒng)中配置的所有工作流的名字。

13.public boolean canInitialize(String workflowName, int initialAction),public boolean canInitialize(String workflowName, int initialAction, Map inputs),private boolean canInitialize(String workflowName, int initialAction, Map transientVars, PropertySet ps) throws WorkflowException

判斷指定的工作流初始化Action是不是可以執(zhí)行。

14.public boolean canModifyEntryState(long id, int newState)

判斷工作流是不是可以轉(zhuǎn)換到指定狀態(tài)。

  • 不可以轉(zhuǎn)換到CREATED狀態(tài)。
  • CREATED,SUSPENDED可以轉(zhuǎn)換到ACTIVATED狀態(tài)。
  • ACTIVATED可以轉(zhuǎn)換到SUSPENDED狀態(tài)。
  • CREATED,ACTIVATED,SUSPENDED 可以轉(zhuǎn)換到KILLED狀態(tài)。

15.public void changeEntryState(long id, int newState) throws WorkflowException

轉(zhuǎn)換工作流狀態(tài)。

最最常用的方法,核心的方法doAction(這個(gè)方法一定要看好,要不就等于沒(méi)學(xué)這個(gè)類(lèi)了。)

*16.public void doAction(long id, int actionId, Map inputs) throws WorkflowException

執(zhí)行Action。

  • 獲得工作流store,和流程實(shí)例entry
  • 判斷是不是活動(dòng)的工作流,不是就返回。
  • 獲得工作流的定義。
  • 獲得工作流當(dāng)前所再Steps。
  • 獲得工作流PropertySet
  • 生成transientVars。
  • GlobalActions中和當(dāng)前Steps的普通Actions中判斷執(zhí)行的Action是否試可執(zhí)行的。
  • 完成ActionTransition。

17.public void executeTriggerFunction(long id, int triggerId) throws WorkflowException

調(diào)用工作流的Trigger Function

*18.public long initialize(String workflowName, int initialAction, Map inputs) throws InvalidRoleException, InvalidInputException, WorkflowException

初始化一個(gè)新的流程實(shí)例。返回流程實(shí)例id

*19.public List query(WorkflowQuery query),public List query(WorkflowExpressionQuery query)

查詢(xún)流程實(shí)例。

20.public boolean removeWorkflowDescriptor(String workflowName) throws FactoryException

刪除已經(jīng)配置的工作流定義。

21.public boolean saveWorkflowDescriptor(String workflowName, WorkflowDescriptor descriptor, boolean replace) throws FactoryException

保存工作流定義。

22.protected List getAvailableActionsForStep(WorkflowDescriptor wf, Step step, Map transientVars, PropertySet ps) throws WorkflowException

獲得指定步驟的可用Actions。

23.protected int[] getAvailableAutoActions(long id, Map inputs)

返回可執(zhí)行的AutoActions

24.protected List getAvailableAutoActionsForStep(WorkflowDescriptor wf, Step step, Map transientVars, PropertySet ps) throws WorkflowException

返回指定Step中可執(zhí)行的AutoActions。

25.protected WorkflowStore getPersistence() throws StoreException

返回配置的store。

26.protected void checkImplicitFinish(long id) throws WorkflowException

判斷工作流是不是還有可執(zhí)行的Action,如果沒(méi)有,完成此工作流實(shí)例。

27.protected void completeEntry(long id, Collection currentSteps) throws StoreException

結(jié)束工作流實(shí)例,就是把改變流程實(shí)例的狀態(tài)并把當(dāng)前的Steps都放入到歷史表中。 

28.protected boolean passesCondition(ConditionDescriptor conditionDesc, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException

29.protected boolean passesCondition(ConditionDescriptor conditionDesc, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowExceptionprotected boolean passesConditions(String conditionType, List conditions, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException

判斷條件是不是符合。

30.protected void populateTransientMap(WorkflowEntry entry, Map transientVars, List registers, Integer actionId, Collection currentSteps) throws WorkflowException

產(chǎn)生臨時(shí)變量transientVars,包含contextentry,storedescriptor,actionIdcurrentSteps,以及定義的register和用戶(hù)的輸入變量。

31.protected void verifyInputs(WorkflowEntry entry, List validators, Map transientVars, PropertySet ps) throws WorkflowException

驗(yàn)證用戶(hù)的輸入。

*32.private boolean isActionAvailable(ActionDescriptor action, Map transientVars, PropertySet ps, int stepId) throws WorkflowException

判斷Action是否可用。

33.private Step getCurrentStep(WorkflowDescriptor wfDesc, int actionId, List currentSteps, Map transientVars, PropertySet ps) throws WorkflowException

獲得Action所在Step。

34.private boolean canInitialize(String workflowName, int initialAction, Map transientVars, PropertySet ps) throws WorkflowException

判斷工作流是不是可以實(shí)例化。

35.private Step createNewCurrentStep(ResultDescriptor theResult, WorkflowEntry entry, WorkflowStore store, int actionId, Step currentStep, long[] previousIds, Map transientVars, PropertySet ps) throws WorkflowException

產(chǎn)生新的當(dāng)前Step。

  • resulte中獲得nextStep,如果為-1,nextStep為當(dāng)前Step。
  • 獲得定義中的owner,oldStatus,status。
  • 完成當(dāng)前Step,并且將當(dāng)前Step保存到歷史庫(kù)中。
  • 生成新的Step。

36.private void executeFunction(FunctionDescriptor function, Map transientVars, PropertySet ps) throws WorkflowException

執(zhí)行Function。

37.private boolean transitionWorkflow(WorkflowEntry entry, List currentSteps, WorkflowStore store, WorkflowDescriptor wf, ActionDescriptor action, Map transientVars, Map inputs, PropertySet ps) throws WorkflowException

完成工作流的transation。

接口部分:

Register
RegisterRemote
Validator

Conditions

上面這幾個(gè)定義了相應(yīng)的基本方法,如register則定義了返回對(duì)象的方法registerVariable以及參數(shù)形式,Validator則定義了validate方法

FunctionProvider(接口):所有的function包括是prepost都必須實(shí)現(xiàn)的接口,它其中有個(gè)execute方法。

Workflow(接口):AbstractWorkflow, BasicSOAPWorkflow, EJBWorkflow, OfbizSOAPWorkflow這些類(lèi)都是實(shí)現(xiàn)了這個(gè)接口,所以在初始化一個(gè)workflow對(duì)象的時(shí)候,就可以用它來(lái)做Workflow wf = new BasicWorkflow((String) session.getAttribute("username"));,這也算是個(gè)老祖宗接口了。呵呵^_^

JoinNodes(類(lèi)):

只有一個(gè)方法,根據(jù)stepid返回step

public Step getStep(int stepId)

Exception部分:

包括各種exception

FactoryException
InternalWorkflowException
InvalidActionException
InvalidEntryStateException
InvalidInputException
InvalidRoleException
InvalidWorkflowDescriptorException
QueryNotSupportedException
StoreException
WorkflowException

這里workflowExeception是繼承自Exception類(lèi)的,而其他則繼承自WorkflowException類(lèi)。如InvalidInputException則是在Validator校驗(yàn)時(shí)候,如果是java-based類(lèi)型則拋出此異常。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
OSWorkflow深層講解系列(一)初始化的原理 - 胡長(zhǎng)城(銀狐999)BLOG - ...
用osworkflow寫(xiě)一個(gè)請(qǐng)假例子 - 莊周夢(mèng)蝶 - BlogJava
JR - 精品文章 - OSWorkFlow分析
OSWorkflow使用問(wèn)答
JdbcTemplate 與 PreparedStatement
用java收郵件
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服