public TransitionalState getTransitionDomain()

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;
    }