private void followLinks(StringBuilder graphText, List<Link> toFollow, Node nodeToTerminateFollow,
			List<Node> unvisitedNodes, List<Link> unfollowedLinks) {
		while (toFollow.size() != 0) {
			if (toFollow.size() > 1) { // SPLIT
				if (graphText.length() != 0) {
					// If there is something already in the text, a || is needed to
					// join it to the preceding element
					graphText.append(" || ");
				}
				graphText.append("<");
				Node endOfSplit = findEndOfSplit(toFollow);
				for (int i = 0; i < toFollow.size(); i++) {
					if (i > 0) {
						graphText.append(" & ");
					}
					Link l = toFollow.get(i);
					followLink(graphText, l, endOfSplit, unvisitedNodes, unfollowedLinks);
				}
				graphText.append(">");
				if (endOfSplit == null || endOfSplit.isEnd()) {
					// nothing left to do
					break;
				}
				if (endOfSplit == nodeToTerminateFollow) {
					// Time to finish if termination node hit
					break;
				}
				unvisitedNodes.remove(endOfSplit);
				if (!endOfSplit.isSync()) {
					// If not a sync node, include it in the output text
					graphText.append(" || ");
					printNode(graphText, endOfSplit, unvisitedNodes);
					List<Link> transitionalLinks = findLinksFrom(endOfSplit, false);
					// null final param here probably not correct
					printTransitions(graphText, unvisitedNodes, unfollowedLinks, transitionalLinks, null);
				}
				toFollow = findLinksFromWithoutTransitions(endOfSplit, false);
			}
			else if (toFollow.size() == 1) { // FLOW
				Link linkToFollow = toFollow.get(0);
				Node linkToFollowTarget = findNodeById(linkToFollow.to);
				if (linkToFollowTarget != nodeToTerminateFollow) {
					// need special handling for end/fail??
					if (graphText.length() != 0) {
						// First one doesn't need a || on the front
						graphText.append(" || ");
					}
					followLink(graphText, linkToFollow, nodeToTerminateFollow, unvisitedNodes, unfollowedLinks);
				}
				break;
			}
		}
	}
Chase down links, populating the graphText as it proceeds.

@param graphText where to place the DSL text as we process the graph
@param toFollow the links to follow
@param nodeToTerminateFollow the node that should trigger termination of following
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/job/dsl/Graph.java