// private void recursiveProcessReplies(HashMap<String, Object> reply, String textDisplay) {
  private void recursiveProcessReplies(Email reply) {

    if (!reply.getReplies().isEmpty()) {

      for (Email email : reply.getReplies()) {

        // String textnew = textDisplay.concat(" <- " + (String) id);
        // System.out.println(cap + " " + textnew);

        if (email != null) {

          // Verify if the recursion is needed for this particular email.

          if (!email.directReplies.contains(reply)
              || !email.indirectReplies.containsAll(reply.getDirectReplies())
              || !email.indirectReplies.containsAll(reply.getIndirectReplies())) {

            email.addDirectReply(reply);
            email.addIndirectReply(reply.getDirectReplies());
            email.addIndirectReply(reply.getIndirectReplies());

            // append responders.
            email.addResponder(reply.getFrom());
            email.addResponder(reply.getResponders());

            if (!email.getReplies().isEmpty()) {
              // recursiveProcessReplies(email, textnew);
              recursiveProcessReplies(email);
            }
          }
        }
      }
    }
  }