jetflow.java

来自「一个工作流组件(包括定义和引擎)」· Java 代码 · 共 106 行

JAVA
106
字号
package org.shaoye.workflow.flow;

import org.shaoye.workflow.flow.*;
import org.shaoye.workflow.item.*;
import org.shaoye.workflow.state.StateMachine;
import org.shaoye.workflow.dto.WorkFlowGlobal;

import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;

/**
 *
 * <p>Title: ���������� </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class JetFlow {
    public JetFlow() {}

    /**
     * ����������
     * @param global WorkFlowGlobal
     * @return WorkFlowGlobal
     * @throws Exception
     */
    public WorkFlowGlobal runFlow( WorkFlowGlobal global )
            throws Exception
    {

        FlowItem flowItem = StateMachine.getFlowItem(global.getWorkflowid());
        global.setPeriNode( global.getCurrNode() );
        HashMap nodes = flowItem.getNodeMap();
        Set set = nodes.keySet();
        Iterator it = set.iterator();
        while( it.hasNext() )
        {
            String key = (String)it.next();
            NodeItem nodeItem = (NodeItem)nodes.get(key);
            if(nodeItem.getCodeID().equals(global.getCurrNode()))
            {
                HashMap caseMap = nodeItem.getCaseMap();
                global.setCurrNode_isFinal( nodeItem.get_final() );
                Set _set = caseMap.keySet();
                Iterator _it = _set.iterator();
                while(_it.hasNext())
                {
                    String _key = (String)_it.next();
                    CaseItem caseItem = (CaseItem)caseMap.get(_key);
                    if(caseItem.getIfCase().equals(global.getCurrNodeOper()))
                    {
                        global.setCurrNode(caseItem.getNextNode());
                        global.setCurrNodeReason(caseItem.getReason());
                        break;
                    }
                    else
                        continue;
                }
                break;
            }
            else
                continue;
        }
        return global;
    }

    /**
     * ���Գ���
     * @param args String[]
     * @throws Exception
     */
    public static void main(String[] args)
            throws Exception{
        try
        {
            //�������
            WorkFlowGlobal global = new WorkFlowGlobal();
            JetFlow jetflow =
                    new JetFlow();
            global.setCurrNode("n1");
            global.setCurrNodeOper("pass");

            //������!
            global = jetflow.runFlow(global);
            System.out.println("CurrNode: "+global.getCurrNode());
            System.out.println("CurrNodeOper: "+global.getCurrNodeOper());
            System.out.println("CurrNodeReason: "+global.getCurrNodeReason());
            System.out.println("NextNode: "+global.getNextNode());
            System.out.println("StartupNodeID: "+global.getStartupNodeID());
            System.out.println("Workflowid: "+global.getWorkflowid());
            System.out.println("Is_Final: "+global.getCurrNode_isFinal());
        }
        catch(Exception ex)
        {
            System.out.println(ex.toString());
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?