// Fire the refinements of the current state.
Iterator actors = _enabledRefinements.iterator();
while (actors.hasNext()) {
Actor actor = (Actor) actors.next();
if (_debugging && _verbose) {
_debug(getName(), " fire refinement", ((NamedObj) actor)
.getName());
}
// If this is the first time this state is visited, check
// whether the director for the refinement is a CT (Embedded)
// director. If so, establish the initial states for this
// refinement.
if (!visited) {
Director director = actor.getDirector();
if (director instanceof CTEmbeddedDirector) {
((CTEmbeddedDirector) director)
.setInitialStatesNotReady();
}
}
actor.fire();
}
// The controller needs to know the most updated outputs from
// the firing of the enabled refinements.
ctrl.readOutputsFromRefinement();