View Javadoc

1   package at.meikel.dmrl.webapp.rest;
2   
3   import java.util.Collections;
4   import java.util.Comparator;
5   import java.util.List;
6   import java.util.Vector;
7   
8   import org.springframework.beans.factory.annotation.Autowired;
9   import org.springframework.stereotype.Controller;
10  import org.springframework.web.bind.annotation.PathVariable;
11  import org.springframework.web.bind.annotation.RequestMapping;
12  import org.springframework.web.bind.annotation.RequestMethod;
13  import org.springframework.web.bind.annotation.ResponseBody;
14  
15  import at.meikel.dmrl.server.model.Player;
16  import at.meikel.dmrl.server.server.Server;
17  
18  @Controller
19  public class PlayerService {
20  
21      @Autowired
22      Server server = null;
23  
24      @RequestMapping(value = {"/players"}, method = RequestMethod.GET)
25      @ResponseBody
26      public List<Player> getAllPlayers() {
27          List<Player> result = null;
28          if (server != null) {
29              result = server.getRankingList().getAllPlayers();
30          }
31  
32          if (result == null) {
33              result = new Vector<Player>();
34          }
35  
36          Collections.sort(result, new Comparator<Player>() {
37              @Override
38              public int compare(Player p1, Player p2) {
39                  if (p1 == null) {
40                      return p2 == null ? 0 : 1;
41                  } else {
42                      if (p2 == null) {
43                          return -1;
44                      } else {
45                          return (int) Math.signum(p1.getRanglistenwert()
46                                  - p2.getRanglistenwert());
47                      }
48                  }
49              }
50          });
51  
52          return result;
53      }
54  
55      @RequestMapping(value = {"/playersByTeam/{teamName}"}, method = RequestMethod.GET)
56      @ResponseBody
57      public List<Player> getPlayersByTeam(@PathVariable String teamName) {
58          List<Player> result = null;
59          if (server != null) {
60              result = server.getRankingList().find(teamName);
61          }
62  
63          if (result == null) {
64              result = new Vector<Player>();
65          }
66  
67          Collections.sort(result, new Comparator<Player>() {
68              @Override
69              public int compare(Player p1, Player p2) {
70                  if (p1 == null) {
71                      return p2 == null ? 0 : 1;
72                  } else {
73                      if (p2 == null) {
74                          return -1;
75                      } else {
76                          return (int) Math.signum(p1.getRanglistenwert()
77                                  - p2.getRanglistenwert());
78                      }
79                  }
80              }
81          });
82  
83          return result;
84      }
85  
86      @RequestMapping(value = {"/playersByNationalAssociation/{nationalAssociationName}"}, method = RequestMethod.GET)
87      @ResponseBody
88      public List<Player> getPlayersByNationalAssociation(@PathVariable String nationalAssociationName) {
89          List<Player> result = null;
90          if (server != null) {
91              result = server.getRankingList().findByNationalAssociation(nationalAssociationName);
92          }
93  
94          if (result == null) {
95              result = new Vector<Player>();
96          }
97  
98          Collections.sort(result, new Comparator<Player>() {
99              @Override
100             public int compare(Player p1, Player p2) {
101                 if (p1 == null) {
102                     return p2 == null ? 0 : 1;
103                 } else {
104                     if (p2 == null) {
105                         return -1;
106                     } else {
107                         return (int) Math.signum(p1.getRanglistenwert()
108                                 - p2.getRanglistenwert());
109                     }
110                 }
111             }
112         });
113 
114         return result;
115     }
116 
117     @RequestMapping(value = {"/players/byLicenseId/{licenseId}"}, method = RequestMethod.GET)
118     @ResponseBody
119     public Player getPlayerByLicenseId(@PathVariable String licenseId) {
120         if (server != null) {
121             Player result = server.getRankingList().findByLicenseId(licenseId);
122             return result;
123         }
124 
125         return null;
126     }
127 
128     @RequestMapping(value = {"/bangolfArena/allplayers.txt"}, method = RequestMethod.GET)
129     public String bangolfArenaAllPlayers() {
130         StringBuilder result = new StringBuilder();
131 
132         List<Player> list = null;
133         if (server != null) {
134             list = server.getRankingList().getAllPlayers();
135         }
136 
137         if (list == null) {
138             list = new Vector<Player>();
139         }
140 
141         Collections.sort(list, new Comparator<Player>() {
142             @Override
143             public int compare(Player p1, Player p2) {
144                 if (p1 == null) {
145                     return p2 == null ? 0 : 1;
146                 } else {
147                     if (p2 == null) {
148                         return -1;
149                     } else {
150                         return (int) Math.signum(p1.getRanglistenwert()
151                                 - p2.getRanglistenwert());
152                     }
153                 }
154             }
155         });
156 
157         for (Player player : list) {
158             if (result.length() != 0) {
159                 // result.append(System.getProperty("line.separator"));
160                 result.append("BREAK");
161             }
162             // D
163             // H
164             // JM
165             // JW
166             // SCHM
167             // SCHW
168             // SM I
169             // SM II
170             // SW I
171             // SW II
172             String kat = player.getKategorie();
173 
174             if ("D".equalsIgnoreCase(player.getKategorie())) {
175                 kat = "ds"; // Damen
176             } else if ("H".equalsIgnoreCase(player.getKategorie())) {
177                 kat = "hs"; // Herren
178             } else if ("JM".equalsIgnoreCase(player.getKategorie())) {
179                 kat = "hj"; // Jugend männlich
180             } else if ("JW".equalsIgnoreCase(player.getKategorie())) {
181                 kat = "dj"; // Jugend weiblich
182             } else if ("SCHM".equalsIgnoreCase(player.getKategorie())) {
183                 kat = "pa"; // Schüler männlich
184             } else if ("SCHW".equalsIgnoreCase(player.getKategorie())) {
185                 kat = "fa"; // Schüler weiblich
186             } else if ("SM I".equalsIgnoreCase(player.getKategorie())) {
187                 kat = "ob"; // Senioren männlich I
188             } else if ("SM II".equalsIgnoreCase(player.getKategorie())) {
189                 kat = "hv"; // Senioren männlich II
190             } else if ("SW I".equalsIgnoreCase(player.getKategorie())) {
191                 kat = "og"; // Senioren weiblich I
192             } else if ("SW II".equalsIgnoreCase(player.getKategorie())) {
193                 kat = "dv"; // Senioren weiblich II
194             }
195             result.append(kat);
196             result.append("#");
197             result.append(player.getPassnummer());
198             result.append("#");
199             result.append(player.getVorname());
200             result.append("#");
201             result.append(player.getNachname());
202             result.append("#");
203             result.append(player.getVerein());
204             // if (result.length() > 500) {
205             // break;
206             // }
207         }
208 
209         return result.toString();
210     }
211 
212 }