Sorting games by their newestness
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 19 Sep 2009 07:58:56 +0200
changeset 962eeaa41236c3
parent 95 36ace6ba1dc1
child 97 3af50ab53c15
Sorting games by their newestness
webidor/src/main/java/cz/xelfi/quoridor/webidor/GameId.java
webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Games.java
     1.1 --- a/webidor/src/main/java/cz/xelfi/quoridor/webidor/GameId.java	Fri Sep 18 23:28:13 2009 +0200
     1.2 +++ b/webidor/src/main/java/cz/xelfi/quoridor/webidor/GameId.java	Sat Sep 19 07:58:56 2009 +0200
     1.3 @@ -26,6 +26,7 @@
     1.4  
     1.5  package cz.xelfi.quoridor.webidor;
     1.6  
     1.7 +import java.util.Comparator;
     1.8  import java.util.Date;
     1.9  import java.util.UUID;
    1.10  import javax.xml.bind.annotation.XmlAccessType;
    1.11 @@ -41,6 +42,8 @@
    1.12  @XmlRootElement
    1.13  @XmlAccessorType(XmlAccessType.FIELD)
    1.14  public class GameId {
    1.15 +    public static final Comparator<GameId> NEWEST_FIRST = new NewestFirst();
    1.16 +
    1.17      @XmlAttribute
    1.18      private String white;
    1.19      @XmlAttribute
    1.20 @@ -99,4 +102,17 @@
    1.21      public GameStatus getStatus() {
    1.22          return status;
    1.23      }
    1.24 +
    1.25 +    private static final class NewestFirst implements Comparator<GameId> {
    1.26 +        public int compare(GameId o1, GameId o2) {
    1.27 +            if (o1 == o2) {
    1.28 +                return 0;
    1.29 +            }
    1.30 +            long diff = o2.getModified() - o1.getModified();
    1.31 +            if (diff != 0) {
    1.32 +                return diff < 0 ? -1 : 1;
    1.33 +            }
    1.34 +            return o1.getId().compareTo(o2.getId());
    1.35 +        }
    1.36 +    }
    1.37  }
     2.1 --- a/webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Games.java	Fri Sep 18 23:28:13 2009 +0200
     2.2 +++ b/webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Games.java	Sat Sep 19 07:58:56 2009 +0200
     2.3 @@ -38,6 +38,7 @@
     2.4  import java.io.IOException;
     2.5  import java.io.PrintWriter;
     2.6  import java.util.ArrayList;
     2.7 +import java.util.Collections;
     2.8  import java.util.Date;
     2.9  import java.util.List;
    2.10  import java.util.logging.Level;
    2.11 @@ -177,6 +178,7 @@
    2.12          for (Game g : games) {
    2.13              arr.add(g.getId());
    2.14          }
    2.15 +        Collections.sort(arr, GameId.NEWEST_FIRST);
    2.16          return arr;
    2.17      }
    2.18