private static void addActivities(
     Set<TransitionTarget> visited,
     List<TransitionTarget> targets,
     IActivity activity,
     TransitionOptions options,
     boolean forward,
     Stack<TransitionStep> steps) {
   ModelElementList<ITransition> transitions =
       forward ? activity.getOutTransitions() : activity.getInTransitions();
   JoinSplitType jsType = forward ? activity.getSplitType() : activity.getJoinType();
   if (JoinSplitType.And == jsType && transitions.size() > 1) {
     IActivity target =
         consume(
             activity,
             asList(transitions),
             CollectionUtils.<ITransition>newHashSet(),
             forward,
             options.areLoopsAllowed());
     if (target != null) {
       addActivity(visited, targets, target, options, forward, steps);
     }
   } else {
     for (ITransition transition : transitions) {
       IActivity target = forward ? transition.getToActivity() : transition.getFromActivity();
       jsType = forward ? target.getJoinType() : target.getSplitType();
       if (JoinSplitType.And != jsType) {
         addActivity(visited, targets, target, options, forward, steps);
       }
     }
   }
 }