package controllers; import com.google.common.base.Joiner; import com.sun.syndication.io.FeedException; import models.Game; import models.Player; import models.Timeline; import models.Versus; import play.mvc.Controller; import play.mvc.Result; import views.html.index; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class ApplicationController extends Controller { public static Result index() { return ok(index.render(new Timeline())); } private static void recompute() { List<Game> all = Game.findAll(); for (Game game : all) { game.recomputeRankings(); } } private static void reverseVersus() { Map<Player, List<Player>> counts = new HashMap<Player, List<Player>>(); List<Player> all = Player.findAll(); for (Player player1 : all) { Versus bestVersus = player1.getBestVersus(); Player player2 = bestVersus.player2; List<Player> opponents = counts.get(player2); if (opponents == null) { opponents = new ArrayList<Player>(); counts.put(player2, opponents); } if (!player1.scores.isEmpty()) { opponents.add(player1); } } List<Map.Entry<Player, List<Player>>> list = new ArrayList<Map.Entry<Player, List<Player>>>(counts.entrySet()); Collections.sort(list, new Comparator<Map.Entry<Player, List<Player>>>() { @Override public int compare(Map.Entry<Player, List<Player>> o1, Map.Entry<Player, List<Player>> o2) { return o2.getValue().size() - o1.getValue().size(); } }); for (Map.Entry<Player, List<Player>> playerIntegerEntry : list) { System.err.println(playerIntegerEntry.getKey().name + " -> " + playerIntegerEntry.getValue().size() + " " + Joiner.on(", ").join(playerIntegerEntry.getValue())); } } public static Result indexRss() throws IOException, FeedException { return ok(new Timeline().rss()); } }