code: private void findTransitives(String groupIn, String groupOut)
      {
          final GroupTransition groupTransition = new GroupTransition(groupIn, groupOut);
          if (!transitives.containsKey(groupTransition))
          {
              transitives.put(groupTransition, new ArrayList<GroupTransition>());
          }
  
          final Collection<GroupTransition> localChecked = new HashSet<>();
          final Collection<GroupTransition> found = transitives.get(groupTransition);
  
          final Deque<GroupTransition> collect = new ArrayDeque<>();
          checkTransitive(groupIn, groupIn, groupOut, localChecked, collect, true);
  
          if (collect.size() >= MINIMUM_TRANSITION_FOR_CYCLE)
          {
              reduceTransitive(collect);
          }
  
          found.addAll(collect);
  
          localChecked.clear();
      }
docs: Find transitive groups.
  
  @param groupIn The first group.
  @param groupOut The last group.