{
decisionTransitions.add(transition);
final Collection outcomes = target.getOutgoing();
for (final Iterator iterator = outcomes.iterator(); iterator.hasNext();)
{
final TransitionFacade outcome = (TransitionFacade) iterator.next();
collectTransitions(outcome, processedTransitions);
}
}
else if (target instanceof StrutsActionState)
{
actionStates.add(target);
final FrontEndForward forward = ((StrutsActionState) target).getForward();
if (forward != null)
{
collectTransitions(forward, processedTransitions);
}
}
else // all the rest is ignored but outgoing transitions are further processed
{
final Collection outcomes = target.getOutgoing();
for (final Iterator iterator = outcomes.iterator(); iterator.hasNext();)
{
final TransitionFacade outcome = (TransitionFacade) iterator.next();
collectTransitions(outcome, processedTransitions);
}
}
}