in src/main/java/org/apache/commons/scxml2/model/SimpleTransition.java [195:233]
public TransitionalState getTransitionDomain() {
TransitionalState ts = transitionDomain;
if (ts == null && !targets.isEmpty() && !scxmlTransitionDomain) {
if (getParent() != null) {
if (isTypeInternal()) {
transitionDomain = getParent();
}
else {
// findLCCA
for (int i = getParent().getNumberOfAncestors()-1; i > -1; i--) {
if (isCompoundStateParent(getParent().getAncestor(i))) {
boolean allDescendants = true;
for (final TransitionTarget tt : targets) {
if (i >= tt.getNumberOfAncestors()) {
i = tt.getNumberOfAncestors();
allDescendants = false;
break;
}
if (tt.getAncestor(i) != getParent().getAncestor(i)) {
allDescendants = false;
break;
}
}
if (allDescendants) {
transitionDomain = getParent().getAncestor(i);
break;
}
}
}
}
}
ts = transitionDomain;
if (ts == null) {
scxmlTransitionDomain = true;
}
}
return ts;
}