protected void parseTransition(Definition definition, Element nodeElement) { String sourceName = nodeElement.elementText("name"); Node sourceNode = definition.getNode(sourceName); Element transitionsElement = nodeElement.element("transitions"); if (transitionsElement == null) { return; } List<Element> transitionElements = transitionsElement.elements("transition"); for (Element transitionElement : transitionElements) { String transitionName = transitionElement.elementText("name"); String targetName = transitionElement.elementText("target"); Node targetNode = definition.getNode(targetName); boolean defaultValue = GetterUtil.getBoolean(transitionElement.elementText("default"), true); Transition transition = new Transition(transitionName, sourceNode, targetNode, defaultValue); Element timerElement = transitionElement.element("timer"); if (timerElement != null) { Timer timer = parseTimerElement(timerElement, false); transition.setTimers(timer); } sourceNode.addTransition(transition); } }