in src/main/java/org/apache/commons/scxml2/semantics/SCXMLSemanticsImpl.java [432:458]
public void computeEntrySet(final SCXMLExecutionContext exctx, final Step step) {
final Set<History> historyTargets = new HashSet<>();
final Set<EnterableState> entrySet = new HashSet<>();
for (final SimpleTransition st : step.getTransitList()) {
for (final TransitionTarget tt : st.getTargets()) {
if (tt instanceof EnterableState) {
entrySet.add((EnterableState) tt);
}
else {
// History
historyTargets.add((History)tt);
}
}
}
for (final EnterableState es : entrySet) {
addDescendantStatesToEnter(exctx, step, es);
}
for (final History h : historyTargets) {
addDescendantStatesToEnter(exctx, step, h);
}
for (final SimpleTransition st : step.getTransitList()) {
final TransitionalState ancestor = st.getTransitionDomain();
for (final TransitionTarget tt : st.getTargets()) {
addAncestorStatesToEnter(exctx, step, tt, ancestor);
}
}
}