@Override public void run(CoreSession session, DocumentRouteElement element, Map<String, Serializable> map) { GraphRoute graph = (GraphRoute) element; element.setRunning(session); if (map != null) { graph.setVariables(map); } runGraph(session, element, graph.getStartNode()); }
@Override public void run(CoreSession session, DocumentRouteElement element) { List<DocumentRouteElement> children = getChildrenElement(session, element); if (!element.isRunning()) { element.setRunning(session); } if (children.isEmpty()) { element.setDone(session); return; } // run all the child unless there is a wait state for (DocumentRouteElement child : children) { if (!child.isDone()) { child.run(session); if (!child.isDone()) { return; } } } // all child ran, we're done element.setDone(session); } }
List<DocumentRouteElement> children = getChildrenElement(session, element); if (children.isEmpty()) { element.setRunning(session); element.setDone(session); return; element.setRunning(session); boolean someChildrenNotDone = false; for (DocumentRouteElement child : children) {
element.setRunning(session);
@Override public void run(CoreSession session, DocumentRouteElement element) { if (element.isRunning()) { return; } else { element.setRunning(session); } if (!(element instanceof DocumentRouteStep)) { throw new RuntimeException("Method run should be overriden in parent class."); } EventFirer.fireEvent(session, element, null, DocumentRoutingConstants.Events.beforeStepRunning.name()); try (OperationContext context = new OperationContext(session)) { context.put(DocumentRoutingConstants.OPERATION_STEP_DOCUMENT_KEY, element); context.setInput(element.getAttachedDocuments(session)); if (!element.isDone()) { EventFirer.fireEvent(session, element, null, DocumentRoutingConstants.Events.stepWaiting.name()); } String chainId = getDocumentRoutingService().getOperationChainId(element.getDocument().getType()); getAutomationService().run(context, chainId); } catch (OperationException e) { throw new NuxeoException(e); } }