/** * Associate also subactivities with outer pool. */ protected void setSubActivities(MAssociationTarget parent, MPool pool) { List activities = parent instanceof MSubProcess? getAllActivities((MSubProcess)parent): ((MPool)parent).getActivities(); if(activities != null) { for(Iterator it = activities.iterator(); it.hasNext(); ) { MActivity activity = (MActivity)it.next(); activity.setPool(pool); if(activity instanceof MSubProcess) setSubActivities((MSubProcess)activity, pool); } } }
/** * Associate also subactivities with outer pool. */ protected void setSubActivities(MAssociationTarget parent, MPool pool) { List activities = parent instanceof MSubProcess? getAllActivities((MSubProcess)parent): ((MPool)parent).getActivities(); if(activities != null) { for(Iterator it = activities.iterator(); it.hasNext(); ) { MActivity activity = (MActivity)it.next(); activity.setPool(pool); if(activity instanceof MSubProcess) setSubActivities((MSubProcess)activity, pool); } } }
mparent.removeEventHandler(mactivity); mactivity.setLane(null); mactivity.setPool(null); mactivity.setPool(null); msp.removeActivity(mactivity); mactivity.setLane(null); mactivity.setPool(null); mactivity.setPool(null); if(mparent.getEventHandlers() == null || !mparent.getEventHandlers().contains(mactivity)) mparent.addEventHandler(mactivity); mactivity.setPool(mparent.getPool()); mactivity.setLane(mactivity.getLane()); mlane.addActivity(mactivity); mactivity.setLane((MLane) ((VLane) parent).getBpmnElement()); mactivity.setPool((MPool) ((VLane) parent).getPool().getBpmnElement()); if(msp.getActivities() == null || !msp.getActivities().contains(mactivity)) msp.addActivity(mactivity); mactivity.setPool(msp.getPool()); mactivity.setLane(msp.getLane()); if(mp.getActivities() == null || !mp.getActivities().contains(mactivity)) mp.addActivity(mactivity); mactivity.setPool((MPool) ((VPool) parent).getBpmnElement());
public void run() { // To schedule a step an implicit activity is created. // In order to put the step parameter value it is necessary // to have an edge with a mapping. Otherwise the parameter // value with be deleted in process thread updateParametersBeforeStep(). MActivity act = new MActivity(); act.setName("External Step Activity: "+(cnt++)); act.setClazz(new ClassInfo(ExecuteStepTask.class)); act.addParameter(new MParameter(MParameter.DIRECTION_IN, new ClassInfo(Object[].class), "step", null)); act.setActivityType(MBpmnModel.TASK); MSequenceEdge edge = new MSequenceEdge(); edge.setTarget(act); UnparsedExpression exp = new UnparsedExpression(null, (Class<?>) null, "step", null); SJavaParser.parseExpression(exp, null, null); // edge.addParameterMapping("step", SJavaParser.parseExpression("step", null, null), null); edge.addParameterMapping("step", exp, null); act.addIncomingSequenceEdge(edge); MPool pl = pool!=null? bpmnmodel.getPool(pool): (MPool)bpmnmodel.getPools().get(0); act.setPool(pl); ProcessThread thread = new ProcessThread(""+idcnt++, act, context, BpmnInterpreter.this); thread.setLastEdge(edge); thread.setParameterValue("step", new Object[]{step, ret}); context.addExternalThread(thread); } });