@Override
		public Element[] walk(Element[] context, Flow jn) {
			boolean inSplit = currentElement.peek().getTagName().equals("split");
			// Only need the flow element if nested in a split
			if (inSplit) {
				Element flow = doc.createElement("flow");
				currentElement.peek().appendChild(flow);
				currentElement.push(flow);
			}
			Element[] result = context;
			transitionNamesToElementIdsInFlow.push(new LinkedHashMap<String, String>());
			for (JobNode j : jn.getSeries()) {
				result = walk(result, j);
			}
			Map<String, String> transitionStepsToCreate = transitionNamesToElementIdsInFlow.pop();
			for (Map.Entry<String, String> transitionStepToCreate : transitionStepsToCreate.entrySet()) {
				Element step = createStep(transitionStepToCreate.getValue(), transitionStepToCreate.getKey());
				currentElement.peek().appendChild(step);
			}
			if (inSplit) {
				currentElement.pop();
			}
			return result;
		}
Create a &lt;end on=&gt; attribute and attach it to the supplied step element.
@param step the step that will get the new attribute
@param jobExitStatus the jobExitStatus to fill in as the 'on' attribute value field
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/job/dsl/JobSpecification.java