statistics/src/main/java/cz/xelfi/quoridor/statistics/EloEntry.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 07 Jan 2010 22:34:17 +0100
branchstatistics-and-elo
changeset 178 4b78d4f028b3
child 264 d60370059c3c
permissions -rw-r--r--
Initial version of statistics and ELO rating. Donated by Martin Rexa
jaroslav@178
     1
/*
jaroslav@178
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
jaroslav@178
     3
 *
jaroslav@178
     4
 * The contents of this file are subject to the terms of either the GNU
jaroslav@178
     5
 * General Public License Version 2 only ("GPL") or the Common
jaroslav@178
     6
 * Development and Distribution License("CDDL") (collectively, the
jaroslav@178
     7
 * "License"). You may not use this file except in compliance with the
jaroslav@178
     8
 * License. You can obtain a copy of the License at
jaroslav@178
     9
 * http://www.netbeans.org/cddl-gplv2.html
jaroslav@178
    10
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
jaroslav@178
    11
 * specific language governing permissions and limitations under the
jaroslav@178
    12
 * License.  When distributing the software, include this License Header
jaroslav@178
    13
 * Notice in each file and include the License file at
jaroslav@178
    14
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
jaroslav@178
    15
 * particular file as subject to the "Classpath" exception as provided
jaroslav@178
    16
 * by Sun in the GPL Version 2 section of the License file that
jaroslav@178
    17
 * accompanied this code. If applicable, add the following below the
jaroslav@178
    18
 * License Header, with the fields enclosed by brackets [] replaced by
jaroslav@178
    19
 * your own identifying information:
jaroslav@178
    20
 * "Portions Copyrighted [year] [name of copyright owner]"
jaroslav@178
    21
 *
jaroslav@178
    22
 * Contributor(s):
jaroslav@178
    23
 *
jaroslav@178
    24
 * Portions Copyrighted 2010 Martin Rexa
jaroslav@178
    25
 */
jaroslav@178
    26
jaroslav@178
    27
package cz.xelfi.quoridor.statistics;
jaroslav@178
    28
jaroslav@178
    29
import javax.xml.bind.annotation.XmlAttribute;
jaroslav@178
    30
import java.util.Comparator;
jaroslav@178
    31
/**
jaroslav@178
    32
 *
jaroslav@178
    33
 * @author Martin Rexa
jaroslav@178
    34
 */
jaroslav@178
    35
public class EloEntry {
jaroslav@178
    36
    String player;
jaroslav@178
    37
    double elo;
jaroslav@178
    38
    int games;
jaroslav@178
    39
jaroslav@178
    40
    public static final Comparator<EloEntry> BEST_FIRST = new BestFirst();
jaroslav@178
    41
jaroslav@178
    42
    EloEntry(){
jaroslav@178
    43
        super();
jaroslav@178
    44
    }
jaroslav@178
    45
jaroslav@178
    46
    EloEntry(String player, double elo, int games){
jaroslav@178
    47
        super();
jaroslav@178
    48
        this.player = player;
jaroslav@178
    49
        this.elo = elo;
jaroslav@178
    50
        this.games = games;
jaroslav@178
    51
    }
jaroslav@178
    52
jaroslav@178
    53
    @XmlAttribute
jaroslav@178
    54
    public String getPlayer(){
jaroslav@178
    55
        return player;
jaroslav@178
    56
    }
jaroslav@178
    57
jaroslav@178
    58
    @XmlAttribute
jaroslav@178
    59
    public Double getElo(){
jaroslav@178
    60
        return elo;
jaroslav@178
    61
    }
jaroslav@178
    62
jaroslav@178
    63
    @XmlAttribute
jaroslav@178
    64
    public Integer getGames(){
jaroslav@178
    65
        return games;
jaroslav@178
    66
    }
jaroslav@178
    67
jaroslav@178
    68
    public String toString(){
jaroslav@178
    69
        return "Player: " + player + ", ELO: " + elo + ", Games: " + games;
jaroslav@178
    70
    }
jaroslav@178
    71
jaroslav@178
    72
    private static final class BestFirst implements Comparator<EloEntry> {
jaroslav@178
    73
        public int compare(EloEntry e1, EloEntry e2) {
jaroslav@178
    74
            if(e1.elo > e2.elo)
jaroslav@178
    75
                return -1;
jaroslav@178
    76
            else if(e1.elo < e2.elo)
jaroslav@178
    77
                return 1;
jaroslav@178
    78
            else return e1.player.compareTo(e2.player);
jaroslav@178
    79
        }
jaroslav@178
    80
    }
jaroslav@178
    81
jaroslav@178
    82
}