@Override public Template createTemplate(TemplateDTO templateDTO, String groupId) { final ProcessGroup processGroup = flowController.getGroup(groupId); if (processGroup == null) { throw new ResourceNotFoundException("Could not find Process Group with ID " + groupId); } TemplateUtils.scrubTemplate(templateDTO); final Template template = new Template(templateDTO); processGroup.addTemplate(template); return template; }
private void addProcessGroup( final Element parentElement, final ProcessGroup group, final String elementName) { final Document doc = parentElement.getOwnerDocument(); final Element element = doc.createElement(elementName); parentElement.appendChild(element); addTextElement(element, "id", group.getIdentifier()); addTextElement(element, "name", group.getName()); addPosition(element, group.getPosition()); addTextElement(element, "comment", group.getComments()); for (final ProcessorNode processor : group.getProcessors()) { addProcessor(element, processor); } if (group.isRootGroup()) { for (final Port port : group.getInputPorts()) { addRootGroupPort(element, (RootGroupPort) port, "inputPort"); } for (final Port port : group.getOutputPorts()) { addRootGroupPort(element, (RootGroupPort) port, "outputPort"); } } else { for (final Port port : group.getInputPorts()) { addPort(element, port, "inputPort"); } for (final Port port : group.getOutputPorts()) { addPort(element, port, "outputPort"); } } for (final Label label : group.getLabels()) { addLabel(element, label); } for (final Funnel funnel : group.getFunnels()) { addFunnel(element, funnel); } for (final ProcessGroup childGroup : group.getProcessGroups()) { addProcessGroup(element, childGroup, "processGroup"); } for (final RemoteProcessGroup remoteRef : group.getRemoteProcessGroups()) { addRemoteProcessGroup(element, remoteRef); } for (final Connection connection : group.getConnections()) { addConnection(element, connection); } }