public void run(Boolean whileWaiting, HashMap<String, Object> map) { for (Split split : splits) { if (split.isEnabled()) { FlowNode flowNode = FlowController.getSourceFromContainedText(split.getTarget()); flowNode.getSource().run(whileWaiting, map); } } }
@Override public void serialize(final FlowController controller, final OutputStream os) throws FlowSerializationException { try { // create a new, empty document final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); final DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); final Document doc = docBuilder.newDocument(); // populate document with controller state final Element rootNode = doc.createElement("flowController"); doc.appendChild(rootNode); addTextElement( rootNode, "maxTimerDrivenThreadCount", controller.getMaxTimerDrivenThreadCount()); addTextElement( rootNode, "maxEventDrivenThreadCount", controller.getMaxEventDrivenThreadCount()); addProcessGroup(rootNode, controller.getGroup(controller.getRootGroupId()), "rootGroup"); final Element controllerServicesNode = doc.createElement("controllerServices"); rootNode.appendChild(controllerServicesNode); for (final ControllerServiceNode serviceNode : controller.getAllControllerServices()) { addControllerService(controllerServicesNode, serviceNode, encryptor); } final Element reportingTasksNode = doc.createElement("reportingTasks"); rootNode.appendChild(reportingTasksNode); for (final ReportingTaskNode taskNode : controller.getAllReportingTasks()) { addReportingTask(reportingTasksNode, taskNode, encryptor); } final DOMSource domSource = new DOMSource(doc); final StreamResult streamResult = new StreamResult(new BufferedOutputStream(os)); // configure the transformer and convert the DOM final TransformerFactory transformFactory = TransformerFactory.newInstance(); final Transformer transformer = transformFactory.newTransformer(); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); // transform the document to byte stream transformer.transform(domSource, streamResult); } catch (final ParserConfigurationException | DOMException | TransformerFactoryConfigurationError | IllegalArgumentException | TransformerException e) { throw new FlowSerializationException(e); } }