// 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); } } } } } }