Initial version of statistics and ELO rating. Donated by Martin Rexa
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4 * The contents of this file are subject to the terms of either the GNU
5 * General Public License Version 2 only ("GPL") or the Common
6 * Development and Distribution License("CDDL") (collectively, the
7 * "License"). You may not use this file except in compliance with the
8 * License. You can obtain a copy of the License at
9 * http://www.netbeans.org/cddl-gplv2.html
10 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
11 * specific language governing permissions and limitations under the
12 * License. When distributing the software, include this License Header
13 * Notice in each file and include the License file at
14 * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
15 * particular file as subject to the "Classpath" exception as provided
16 * by Sun in the GPL Version 2 section of the License file that
17 * accompanied this code. If applicable, add the following below the
18 * License Header, with the fields enclosed by brackets [] replaced by
19 * your own identifying information:
20 * "Portions Copyrighted [year] [name of copyright owner]"
24 * Portions Copyrighted 2010 Martin Rexa
27 package cz.xelfi.quoridor.statistics;
29 import cz.xelfi.quoridor.webidor.GameId;
30 import cz.xelfi.quoridor.webidor.GameStatus;
31 import cz.xelfi.quoridor.Move;
33 import java.util.HashSet;
35 import java.util.HashMap;
36 import java.util.List;
37 import java.util.ArrayList;
38 import javax.xml.bind.annotation.XmlElement;
39 import javax.xml.bind.annotation.XmlElementWrapper;
40 import javax.xml.bind.annotation.XmlRootElement;
41 //import javax.xml.bind.annotation.XmlAccessType;
42 //import javax.xml.bind.annotation.XmlAccessorType;
43 import javax.xml.bind.annotation.XmlAttribute;
51 //@XmlAccessorType(XmlAccessType.FIELD)
52 public class OpeningNodeView {
55 @XmlElementWrapper(name="whiteGames")
56 @XmlElement(name="gameId")
57 List<GameId> whiteGames;
58 @XmlElementWrapper(name="blackGames")
59 @XmlElement(name="gameId")
60 List<GameId> blackGames;
61 Map<Move, OpeningNodeViewEntry> entries;
64 public OpeningNodeView(){
67 public OpeningNodeView(String code){
69 entries = new HashMap<Move, OpeningNodeViewEntry>();
70 whiteGames = new ArrayList<GameId>();
71 blackGames = new ArrayList<GameId>();
76 public String getNodeCode(){
80 public void processGame(Move m, String code, GameId gId){
81 OpeningNodeViewEntry e = entries.get(m);
83 e = new OpeningNodeViewEntry(m,code);
90 @XmlElementWrapper(name="children")
91 @XmlElement(name="item")
92 public Set<OpeningNodeViewEntry> getChildren(){
93 Set<OpeningNodeViewEntry> result = new HashSet<OpeningNodeViewEntry>();
94 for(Map.Entry<Move, OpeningNodeViewEntry> e: entries.entrySet()){
95 result.add(e.getValue());
101 public void addFinishedGame(GameId gId){
102 if(gId.getStatus().equals(GameStatus.whiteWon))
104 if(gId.getStatus().equals(GameStatus.blackWon))
110 public int getWhiteCount(){
111 return whiteGames.size();
115 public int getBlackCount(){
116 return blackGames.size();
121 public boolean getChildrenNotEmpty(){
122 return !entries.isEmpty();
125 public boolean isEmpty(){