in src/main/java/org/apache/commons/scxml2/io/SCXMLReader.java [1571:1614]
private static void readFinal(final XMLStreamReader reader, final Configuration configuration, final SCXML scxml,
final State parent)
throws XMLStreamException, ModelException, IOException {
final Final end = new Final();
end.setId(readOrGeneratedTransitionTargetId(reader, scxml, SCXMLConstants.ELEM_FINAL));
if (parent == null) {
scxml.addChild(end);
} else {
parent.addChild(end);
}
scxml.addTarget(end);
if (configuration.parent != null) {
configuration.parent.addTarget(end);
}
loop : while (reader.hasNext()) {
String name, nsURI;
switch (reader.next()) {
case XMLStreamConstants.START_ELEMENT:
nsURI = reader.getNamespaceURI();
name = reader.getLocalName();
if (SCXMLConstants.XMLNS_SCXML.equals(nsURI)) {
if (SCXMLConstants.ELEM_ONENTRY.equals(name)) {
readOnEntry(reader, configuration, end);
} else if (SCXMLConstants.ELEM_ONEXIT.equals(name)) {
readOnExit(reader, configuration, end);
} else if (SCXMLConstants.ELEM_DONEDATA.equals(name) && end.getDoneData() == null) {
readDoneData(reader, configuration, end);
} else {
reportIgnoredElement(reader, configuration, SCXMLConstants.ELEM_FINAL, nsURI, name);
}
} else {
reportIgnoredElement(reader, configuration, SCXMLConstants.ELEM_FINAL, nsURI, name);
}
break;
case XMLStreamConstants.END_ELEMENT:
break loop;
default:
}
}
}