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
160 result.append("BREAK");
161 }
162
163
164
165
166
167
168
169
170
171
172 String kat = player.getKategorie();
173
174 if ("D".equalsIgnoreCase(player.getKategorie())) {
175 kat = "ds";
176 } else if ("H".equalsIgnoreCase(player.getKategorie())) {
177 kat = "hs";
178 } else if ("JM".equalsIgnoreCase(player.getKategorie())) {
179 kat = "hj";
180 } else if ("JW".equalsIgnoreCase(player.getKategorie())) {
181 kat = "dj";
182 } else if ("SCHM".equalsIgnoreCase(player.getKategorie())) {
183 kat = "pa";
184 } else if ("SCHW".equalsIgnoreCase(player.getKategorie())) {
185 kat = "fa";
186 } else if ("SM I".equalsIgnoreCase(player.getKategorie())) {
187 kat = "ob";
188 } else if ("SM II".equalsIgnoreCase(player.getKategorie())) {
189 kat = "hv";
190 } else if ("SW I".equalsIgnoreCase(player.getKategorie())) {
191 kat = "og";
192 } else if ("SW II".equalsIgnoreCase(player.getKategorie())) {
193 kat = "dv";
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
205
206
207 }
208
209 return result.toString();
210 }
211
212 }