in src/main/java/org/apache/commons/scxml2/io/ModelUpdater.java [173:197]
private static int initObservables(final List<EnterableState>states, int nextObservableId) {
for (final EnterableState es : states) {
es.setObservableId(nextObservableId++);
if (es instanceof TransitionalState) {
final TransitionalState ts = (TransitionalState)es;
if (ts instanceof State) {
final State s = (State)ts;
if (s.getInitial() != null && s.getInitial().getTransition() != null) {
s.getInitial().getTransition().setObservableId(nextObservableId++);
}
}
for (final Transition t : ts.getTransitionsList()) {
t.setObservableId(nextObservableId++);
}
for (final History h : ts.getHistory()) {
h.setObservableId(nextObservableId++);
if (h.getTransition() != null) {
h.getTransition().setObservableId(nextObservableId++);
}
}
nextObservableId = initObservables(ts.getChildren(), nextObservableId);
}
}
return nextObservableId;
}