errors.add(new ProcessValidationErrorImpl(process,
"ForEach node '" + node.getName() + "' [" + node.getId() + "] has no linked end node"));
}
validateNodes(forEachNode.getNodes(), errors, process);
} else if (node instanceof DynamicNode) {
final DynamicNode dynamicNode = (DynamicNode) node;
if (dynamicNode.getDefaultIncomingConnections().size() == 0) {
errors.add(new ProcessValidationErrorImpl(process,
"Dynamic node '" + node.getName() + "' [" + node.getId() + "] has no incoming connection"));
}
if (dynamicNode.getDefaultOutgoingConnections().size() == 0) {
errors.add(new ProcessValidationErrorImpl(process,
"Dynamic node '" + node.getName() + "' [" + node.getId() + "] has no outgoing connection"));
}
validateNodes(dynamicNode.getNodes(), errors, process);
} else if (node instanceof CompositeNode) {
final CompositeNode compositeNode = (CompositeNode) node;
for (Map.Entry<String, NodeAndType> inType: compositeNode.getLinkedIncomingNodes().entrySet()) {
if (compositeNode.getIncomingConnections(inType.getKey()).size() == 0 && !acceptsNoIncomingConnections(node)) {
errors.add(new ProcessValidationErrorImpl(process,