Package org.fireflow.model.net

Examples of org.fireflow.model.net.Synchronizer


        while (iter.hasNext()) {
            Element loopElement =  iter.next();
            Loop loop = createLoop(wp, loopElement);
            loops.add(loop);

            Synchronizer fromNode = (Synchronizer) loop.getFromNode();
            Synchronizer toNode = (Synchronizer) loop.getToNode();

            fromNode.getLeavingLoops().add(loop);
            toNode.getEnteringLoops().add(loop);
        }
    }
View Full Code Here


            Activity activity = activityList.get(i);
            nodeMap.put(activity.getId(), activity);
        }
        List<Synchronizer> synchronizerList = wp.getSynchronizers();
        for (int i = 0; i < synchronizerList.size(); i++) {
            Synchronizer syn = synchronizerList.get(i);
            nodeMap.put(syn.getId(), syn);
        }
        List<EndNode> endNodeList = wp.getEndNodes();
        for (int i = 0; i < endNodeList.size(); i++) {
            EndNode endNode =  endNodeList.get(i);
            nodeMap.put(endNode.getId(), endNode);
View Full Code Here

        assertEquals(1, result.getLoops().size());

        Loop loop = (Loop)result.getLoops().get(0);
        assertNotNull(loop.getCondition());

        Synchronizer sync1 = (Synchronizer)result.findWFElementById(synchronizer1Id);
        assertEquals(1,sync1.getEnteringLoops().size());
        assertEquals(0,sync1.getLeavingLoops().size());

        Synchronizer sync2 = (Synchronizer)result.findWFElementById(synchronizer2Id);
        assertEquals(0,sync2.getEnteringLoops().size());
        assertEquals(1,sync2.getLeavingLoops().size());
    }
View Full Code Here

        assertEquals(1, result.getLoops().size());

        Loop loop = (Loop)result.getLoops().get(0);
        assertNotNull(loop.getCondition());

        Synchronizer sync1 = (Synchronizer)result.findWFElementById(synchronizer1Id);
        assertEquals(1,sync1.getEnteringLoops().size());
        assertEquals(0,sync1.getLeavingLoops().size());

        Synchronizer sync2 = (Synchronizer)result.findWFElementById(synchronizer2Id);
        assertEquals(0,sync2.getEnteringLoops().size());
        assertEquals(1,sync2.getLeavingLoops().size());
    }
View Full Code Here

        assertEquals(1, result.getLoops().size());

        Loop loop = (Loop)result.getLoops().get(0);
        assertNotNull(loop.getCondition());

        Synchronizer sync1 = (Synchronizer)result.findWFElementById(synchronizer1Id);
        assertEquals(1,sync1.getEnteringLoops().size());
        assertEquals(0,sync1.getLeavingLoops().size());

        Synchronizer sync2 = (Synchronizer)result.findWFElementById(synchronizer2Id);
        assertEquals(0,sync2.getEnteringLoops().size());
        assertEquals(1,sync2.getLeavingLoops().size());
    }
View Full Code Here

        assertEquals(1, result.getLoops().size());

        Loop loop = (Loop)result.getLoops().get(0);
        assertNotNull(loop.getCondition());

        Synchronizer sync1 = (Synchronizer)result.findWFElementById(synchronizer1Id);
        assertEquals(1,sync1.getEnteringLoops().size());
        assertEquals(0,sync1.getLeavingLoops().size());

        Synchronizer sync2 = (Synchronizer)result.findWFElementById(synchronizer2Id);
        assertEquals(0,sync2.getEnteringLoops().size());
        assertEquals(1,sync2.getLeavingLoops().size());
    }
View Full Code Here

    if (targetActivityId != null) {
      List<Synchronizer> allSynchronizersAndEnds = new ArrayList<Synchronizer>();
      allSynchronizersAndEnds.addAll(workflowProcess.getSynchronizers());
      allSynchronizersAndEnds.addAll(workflowProcess.getEndNodes());
      for (int i=0;i<allSynchronizersAndEnds.size();i++){
        Synchronizer synchronizer = allSynchronizersAndEnds.get(i);
        if (synchronizer.getName().equals("Synchronizer4")){
          System.out.println(synchronizer.getName());
        }
        int volumn = 0;
        if (synchronizer instanceof EndNode){
          volumn = synchronizer.getEnteringTransitions().size();
        }else{
          volumn = synchronizer.getEnteringTransitions().size()*synchronizer.getLeavingTransitions().size();
        }     
        IToken tokenTmp =  new Token();
        tokenTmp.setNodeId(synchronizer.getId());
        tokenTmp.setAlive(false);
        tokenTmp.setProcessInstanceId(thisTaskInst.getProcessInstanceId());
        tokenTmp.setStepNumber(-1);

        List<String> incomingTransitionIds = new ArrayList<String>();
        boolean reachable = false;
        List<Transition> enteringTrans = synchronizer.getEnteringTransitions();     
        for (int m=0;m<aliveActivityIdsAfterJump.size();m++){
          String aliveActivityId = aliveActivityIdsAfterJump.get(m);
          if (workflowProcess.isReachable(aliveActivityId, synchronizer.getId())){         
            Transition trans = null;
            reachable = true;
            for (int j=0;j<enteringTrans.size();j++){
              trans = enteringTrans.get(j);
              Node fromNode = (Node)trans.getFromNode();
              if (workflowProcess.isReachable(aliveActivityId, fromNode.getId())){
                if (!incomingTransitionIds.contains(trans.getId())){
                  incomingTransitionIds.add(trans.getId());
                }
              }
            }     
          }
        }
        if (reachable){
          tokenTmp.setValue(volumn-(incomingTransitionIds.size()*volumn/enteringTrans.size()))
         
          IToken virtualToken = getJoinInfo(allTokens,synchronizer.getId());
         
          if (virtualToken!=null){
            persistenceService.deleteTokensForNode(thisTaskInst.getProcessInstanceId(), synchronizer.getId());
          }
         
          if (tokenTmp.getValue()!=0){
            tokenTmp.setProcessInstance(processInstance);
            persistenceService.saveOrUpdateToken(tokenTmp);
View Full Code Here

    //调整token布局
    List<Synchronizer> allSynchronizersAndEnds = new ArrayList<Synchronizer>();
    allSynchronizersAndEnds.addAll(thisProcess.getSynchronizers());
    allSynchronizersAndEnds.addAll(thisProcess.getEndNodes());
    for (int i=0;i<allSynchronizersAndEnds.size();i++){
      Synchronizer synchronizer = allSynchronizersAndEnds.get(i);

      int volumn = 0;
      if (synchronizer instanceof EndNode){
        volumn = synchronizer.getEnteringTransitions().size();
      }else{
        volumn = synchronizer.getEnteringTransitions().size()*synchronizer.getLeavingTransitions().size();
      }     
      IToken tokenTmp =  new Token();
      tokenTmp.setNodeId(synchronizer.getId());
      tokenTmp.setAlive(false);
      tokenTmp.setProcessInstanceId(thisTaskInst.getProcessInstanceId());
      tokenTmp.setStepNumber(-1);

      List<String> incomingTransitionIds = new ArrayList<String>();
      boolean reachable = false;
      List<Transition> enteringTrans = synchronizer.getEnteringTransitions();   
      for (int m=0;m<aliveActivityIdsAfterJump.size();m++){
        String aliveActivityId = aliveActivityIdsAfterJump.get(m);
        if (thisProcess.isReachable(aliveActivityId, synchronizer.getId())){         
          Transition trans = null;
          reachable = true;
          for (int j=0;j<enteringTrans.size();j++){
            trans = enteringTrans.get(j);
            Node fromNode = trans.getFromNode();
            if (thisProcess.isReachable(aliveActivityId, fromNode.getId())){
              if (!incomingTransitionIds.contains(trans.getId())){
                incomingTransitionIds.add(trans.getId());
              }
            }
          }     
        }
      }
      if (reachable){
        tokenTmp.setValue(volumn-(incomingTransitionIds.size()*volumn/enteringTrans.size()))
       
        IToken virtualToken = getJoinInfo(allTokens,synchronizer.getId()); //获取一个虚拟的综合性token
       
        if (virtualToken!=null){
          persistenceService.deleteTokensForNode(thisTaskInst.getProcessInstanceId(), synchronizer.getId());
        }
       
        if (tokenTmp.getValue()!=0){
          tokenTmp.setProcessInstance(thisTaskInst.getAliveProcessInstance());
          persistenceService.saveOrUpdateToken(tokenTmp);
View Full Code Here

TOP

Related Classes of org.fireflow.model.net.Synchronizer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.