1
2
3
4
5 package hoplugins.conv;
6
7
8
9 import java.awt.Dimension;
10 import java.awt.Point;
11 import java.io.BufferedReader;
12 import java.io.ByteArrayInputStream;
13 import java.io.File;
14 import java.io.FileInputStream;
15 import java.io.FileOutputStream;
16 import java.io.IOException;
17 import java.io.InputStreamReader;
18 import java.io.OutputStreamWriter;
19 import java.io.Reader;
20
21 import javax.swing.JFileChooser;
22 import javax.swing.JFrame;
23 import javax.swing.JOptionPane;
24 import javax.xml.parsers.DocumentBuilder;
25 import javax.xml.parsers.DocumentBuilderFactory;
26 import javax.xml.parsers.ParserConfigurationException;
27
28 import org.w3c.dom.Document;
29 import org.w3c.dom.Element;
30 import org.w3c.dom.NodeList;
31 import org.w3c.dom.Text;
32 import org.xml.sax.SAXException;
33
34 import plugins.IDebugWindow;
35
36
37 /***
38 * @author Thorsten Dietz
39 *
40 */
41 abstract class HrfMaker {
42
43 protected String[][] clubValue = null;
44 protected String[][] basicsValue;
45 protected String[][] arenaValue = null;
46 protected String[][] teamValue = null;
47 protected String[][] leagueValue = null;
48 protected String[][] linupValue = null;
49 protected String[][] lastlinupValue = null;
50 protected String[][] xtraValue = null;
51 protected String[][] economyValue = null;
52 protected String[][] playerValue = null;
53 protected String type = " ";
54
55 protected IDebugWindow window;
56 protected final String convertNumber(int number) {
57 return number < 10 ? "0" + number : number + "";
58 }
59
60 protected void debug(String txt){
61 if(window == null)
62 window = RSC.MINIMODEL.getGUI().createDebugWindow(
63 new Point(100, 200),
64 new Dimension(700, 400));
65 window.setVisible(true);
66 window.append(txt);
67 }
68 protected void debug(Exception e){
69 if(window == null)
70 window = RSC.MINIMODEL.getGUI().createDebugWindow(
71 new Point(100, 200),
72 new Dimension(700, 400));
73 window.setVisible(true);
74 window.append(e);
75 }
76
77 protected abstract void start(File[] selectedFiles,File targetDir);
78
79
80 public void handleException(Exception e, String txt) {
81 if (e != null)
82 debug(e);
83 else
84 debug(txt);
85 }
86
87 protected File getDestinationFolder(JFrame owner) {
88
89 File dir = null;
90 JOptionPane.showMessageDialog(null, RSC
91 .getProperty("select_destinated_directory"));
92 JFileChooser saver = new JFileChooser();
93 saver.setDialogTitle(RSC.getProperty("select_destinated_directory"));
94 saver.setMultiSelectionEnabled(false);
95 saver.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
96 int returnSave = saver.showSaveDialog(owner);
97 if (returnSave == JFileChooser.APPROVE_OPTION) {
98 dir = saver.getSelectedFile();
99 }
100 return dir;
101 }
102
103 protected Document getDocument(String xmlString)
104 throws ParserConfigurationException, IOException, SAXException {
105 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
106 DocumentBuilder builder = factory.newDocumentBuilder();
107 ByteArrayInputStream inputStream = new ByteArrayInputStream(xmlString
108 .getBytes());
109 return builder.parse(inputStream);
110 }
111
112 protected final String getUTF8String(File file) {
113 StringBuffer buffer = new StringBuffer();
114 try {
115 FileInputStream inputStream = new FileInputStream(file);
116 InputStreamReader reader = new InputStreamReader(inputStream,
117 "UTF8");
118
119 Reader in = new BufferedReader(reader);
120 int ch;
121 boolean first = true;
122 while ((ch = in.read()) > -1) {
123 if (!first)
124 buffer.append((char) ch);
125 else
126 first = false;
127
128 }
129 } catch (Exception e) {
130 handleException(e, "Canīt read xml-file");
131 }
132 return buffer.toString();
133 }
134 protected void clearArrays() {
135 clubValue = RSC.clubValueDefault;
136 basicsValue = RSC.basicsValueDefault;
137 arenaValue = RSC.arenaValueDefault;
138 teamValue = RSC.teamValueDefault;
139 leagueValue = RSC.leagueValueDefault;
140 linupValue = RSC.linupValueDefault;
141 lastlinupValue = RSC.lastlinupValueDefault;
142 xtraValue = RSC.xtraValueDefault;
143 economyValue = RSC.economyValue;
144 }
145
146
147 protected void writeHrf(String filter, File dir) {
148 if (dir == null)
149 return;
150 try {
151 StringBuffer filename = new StringBuffer();
152 filename.append(dir.getAbsolutePath());
153 filename.append(File.separator);
154 filename.append(filter.substring(0, 4));
155 filename.append("-");
156 filename.append(filter.substring(4, 6));
157 filename.append("-");
158 filename.append(filter.substring(6, 8));
159 filename.append("-");
160 filename.append(type);
161 filename.append(".hrf");
162
163 FileOutputStream out = new FileOutputStream(filename.toString(),
164 false);
165 OutputStreamWriter fileWriter = new OutputStreamWriter(out, "UTF8");
166 writeArray(basicsValue, fileWriter);
167 writeArray(leagueValue, fileWriter);
168 writeArray(clubValue, fileWriter);
169 writeArray(teamValue, fileWriter);
170 writeArray(linupValue, fileWriter);
171 writeArray(economyValue, fileWriter);
172 writeArray(arenaValue, fileWriter);
173 writePlayerArray(playerValue, fileWriter);
174 writePlayerArray(xtraValue, fileWriter);
175 writePlayerArray(lastlinupValue, fileWriter);
176 fileWriter.flush();
177 fileWriter.close();
178
179 } catch (Exception innerEx) {
180 IDebugWindow debugWindow = RSC.MINIMODEL.getGUI ().createDebugWindow ( new java.awt.Point( 100, 200 ), new java.awt.Dimension( 700, 400 ) );
181 debugWindow.setVisible ( true );
182 debugWindow.append ( innerEx );
183 }
184 }
185
186 protected static final void writeArray(String[][] value,
187 OutputStreamWriter file) throws IOException {
188 for (int i = 0; i < value.length; i++) {
189 file.write(value[i][0] + value[i][1] + "\n");
190 }
191 }
192
193 protected static final void writePlayerArray(String[][] value,
194 OutputStreamWriter file) throws IOException {
195 for (int x = 1; x < value[0].length; x++) {
196 for (int i = 0; i < value.length; i++) {
197 file.write(value[i][0] + value[i][x] + "\n");
198 }
199 }
200 }
201 protected final void addBasics() {
202 if (RSC.MINIMODEL != null) {
203 basicsValue[2][1] = "" + RSC.MINIMODEL.getHOVersion();
204 }
205 }
206
207 protected void setTag(Element element,String[][] value,int index){
208 setTag(element,value,index,1);
209 }
210
211 protected void setTag(Element element,String[][] value,int index,int index2){
212 Text txt = (Text) element.getFirstChild();
213 if (txt == null)
214 return;
215 String tagValue = txt.getData();
216 if (tagValue == null)
217 return;
218 value[index][index2] = tagValue.trim();
219 }
220
221 protected static void convert( byte type, File[] selectedFiles){
222 HrfMaker tmp = null;
223 switch(type) {
224 case RSC.TYPE_BUDDY: tmp = new Buddy();break;
225 case RSC.TYPE_HAM: tmp = new HAM();break;
226 case RSC.TYPE_HTFOREVER: tmp = new HTForever();break;
227 case RSC.TYPE_HTCOACH: tmp = new HTCoach();break;
228 }
229
230 tmp.start(selectedFiles,tmp.getDestinationFolder(RSC.MINIMODEL.getGUI().getOwner4Dialog()));
231 }
232 protected void analyzeTeamDetails(NodeList nodelist){
233
234 for (int i = 0; i < nodelist.getLength(); i++) {
235 if (nodelist.item(i) instanceof Element) {
236 Element element = (Element) nodelist.item(i);
237
238 if (element.getTagName().equals("HattrickData")) {
239 analyzeTeamDetails(nodelist.item(i).getChildNodes());
240 continue;
241 }
242 if (element.getTagName().equals("FetchedDate")) {
243 setTag(element,basicsValue,3);
244 continue;
245 }
246 if (element.getTagName().equals("Team")) {
247 analyzeTeamDetails(nodelist.item(i).getChildNodes());
248 continue;
249 }
250 if (element.getTagName().equals("League")) {
251 analyzeTeamDetails(nodelist.item(i).getChildNodes());
252 continue;
253 }
254 if (element.getTagName().equals("LeagueLevelUnit")) {
255 analyzeTeamDetails(nodelist.item(i).getChildNodes());
256 continue;
257 }
258 if (element.getTagName().equals("User")) {
259 analyzeTeamDetails(nodelist.item(i).getChildNodes());
260 continue;
261 }
262 if (element.getTagName().equals("TeamID")) {
263 setTag(element,basicsValue,6);
264 continue;
265 }
266 if (element.getTagName().equals("TeamName")) {
267 setTag(element,basicsValue,7);
268 continue;
269 }
270 if (element.getTagName().equals("HomePage")) {
271 setTag(element,basicsValue,11);
272 continue;
273 }
274 if (element.getTagName().equals("LogoURL")) {
275 setTag(element,xtraValue,6);
276 continue;
277 }
278 if (element.getTagName().equals("Email")) {
279 setTag(element,basicsValue,9);
280 continue;
281 }
282 if (element.getTagName().equals("Name")) {
283 setTag(element,basicsValue,8);
284 continue;
285 }
286 if (element.getTagName().equals("ICQ")) {
287 setTag(element,basicsValue,10);
288 continue;
289 }
290 if (element.getTagName().equals("Loginname")) {
291 setTag(element,basicsValue,8);
292 continue;
293 }
294 if (element.getTagName().equals("PlayerID")) {
295 setTag(element,xtraValue,8);
296 continue;
297 }
298 if (element.getTagName().equals("NumberOfVictories")) {
299 setTag(element,clubValue,10);
300 continue;
301 }
302 if (element.getTagName().equals("NumberOfUndefeated")) {
303 setTag(element,clubValue,9);
304 continue;
305 }
306 if (element.getTagName().equals("LeagueLevelUnitName")) {
307 setTag(element,leagueValue,1);
308 continue;
309 }
310 if (element.getTagName().equals("LeagueID")) {
311 setTag(element,basicsValue,13);
312 continue;
313 }
314 if (element.getTagName().equals("LeagueLevelUnitID")) {
315 setTag(element,xtraValue,11);
316 continue;
317 }
318 }
319 }
320 }
321
322 protected void analyzeClub(NodeList nodelist){
323 for (int i = 0; i < nodelist.getLength(); i++) {
324 if (nodelist.item(i) instanceof Element) {
325 Element element = (Element) nodelist.item(i);
326 if (element.getTagName().equals("HattrickData")) {
327 analyzeClub(nodelist.item(i).getChildNodes());
328 }
329 if (element.getTagName().equals("Team")) {
330 analyzeClub(nodelist.item(i).getChildNodes());
331 }
332 if (element.getTagName().equals("YouthSquad")) {
333 analyzeClub(nodelist.item(i).getChildNodes());
334 }
335
336 if (element.getTagName().equals("Specialists")) {
337 analyzeClub(nodelist.item(i).getChildNodes());
338 }
339 if (element.getTagName().equals("KeeperTrainers")) {
340 setTag(element,clubValue,1);
341 }
342 if (element.getTagName().equals("AssistantTrainers")) {
343 setTag(element,clubValue,2);
344 }
345 if (element.getTagName().equals("Psychologists")) {
346 setTag(element,clubValue,3);
347 }
348 if (element.getTagName().equals("PressSpokesmen")) {
349 setTag(element,clubValue,4);
350 }
351 if (element.getTagName().equals("Economists")) {
352 setTag(element,clubValue,5);
353 }
354 if (element.getTagName().equals("Physiotherapists")) {
355 setTag(element,clubValue,6);
356 }
357 if (element.getTagName().equals("Doctors")) {
358 setTag(element,clubValue,7);
359 }
360 if (element.getTagName().equals("YouthLevel")) {
361 setTag(element,clubValue,8);
362 }
363 if (element.getTagName().equals("HasPromoted")) {
364 setTag(element,xtraValue,7);
365 }
366
367 }
368 }
369 }
370 /***
371 * @param childNodes
372 */
373 protected void analyzeArena(NodeList nodelist) {
374
375 for (int i = 0; i < nodelist.getLength(); i++) {
376 if (nodelist.item(i) instanceof Element) {
377 Element element = (Element) nodelist.item(i);
378 if (element.getTagName().equals("HattrickData")) {
379 analyzeArena(nodelist.item(i).getChildNodes());
380 }
381 if (element.getTagName().equals("Team")) {
382 analyzeArena(nodelist.item(i).getChildNodes());
383 }
384 if (element.getTagName().equals("CurrentCapacity")) {
385 analyzeArena(nodelist.item(i).getChildNodes());
386 }
387 if (element.getTagName().equals("Arena")) {
388 analyzeArena(nodelist.item(i).getChildNodes());
389 continue;
390 }
391 if (element.getTagName().equals("League")) {
392 analyzeArena(nodelist.item(i).getChildNodes());
393 continue;
394 }
395
396 if (element.getTagName().equals("ArenaName")) {
397 setTag(element,arenaValue,1);
398 continue;
399 }
400 if (element.getTagName().equals("RebuiltDate")) {
401 setTag(element,arenaValue,13);
402 continue;
403 }
404 if (element.getTagName().equals("Terraces")) {
405 setTag(element,arenaValue,2);
406 continue;
407 }
408 if (element.getTagName().equals("Basic")) {
409 setTag(element,arenaValue,3);
410 continue;
411 }
412 if (element.getTagName().equals("Roof")) {
413 setTag(element,arenaValue,4);
414 continue;
415 }
416 if (element.getTagName().equals("VIP")) {
417 setTag(element,arenaValue,5);
418 continue;
419 }
420 if (element.getTagName().equals("Total")) {
421 setTag(element,arenaValue,6);
422 continue;
423 }
424
425 }
426 }
427 }
428
429 protected void analyzeEconomy(NodeList nodelist){
430
431 for (int i = 0; i < nodelist.getLength(); i++) {
432 if (nodelist.item(i) instanceof Element) {
433 Element element = (Element) nodelist.item(i);
434 if (element.getTagName().equals("HattrickData")) {
435 analyzeEconomy(nodelist.item(i).getChildNodes());
436 }
437 if (element.getTagName().equals("Team")) {
438 analyzeEconomy(nodelist.item(i).getChildNodes());
439 }
440 if (element.getTagName().equals("Cash")) {
441 setTag(element,economyValue,3);
442 }
443
444 if (element.getTagName().equals("SponsorsPopularity")) {
445 setTag(element,economyValue,2);
446 }
447 if (element.getTagName().equals("SupportersPopularity")) {
448 setTag(element,economyValue,1);
449 }
450 if (element.getTagName().equals("FanClubSize")) {
451 setTag(element,clubValue,11);
452 }
453 if (element.getTagName().equals("IncomeSpectators")) {
454 setTag(element,economyValue,5);
455 }
456 if (element.getTagName().equals("IncomeSponsors")) {
457 setTag(element,economyValue,4);
458 }
459 if (element.getTagName().equals("IncomeFinancial")) {
460 setTag(element,economyValue,6);
461 }
462 if (element.getTagName().equals("IncomeTemporary")) {
463 setTag(element,economyValue,7);
464 }
465 if (element.getTagName().equals("IncomeSum")) {
466 setTag(element,economyValue,8);
467 }
468 if (element.getTagName().equals("CostsArena")) {
469 setTag(element,economyValue,11);
470 }
471 if (element.getTagName().equals("CostsPlayers")) {
472 setTag(element,economyValue,9);
473 }
474 if (element.getTagName().equals("CostsFinancial")) {
475 setTag(element,economyValue,13);
476 }
477 if (element.getTagName().equals("CostsTemporary")) {
478 setTag(element,economyValue,14);
479 }
480 if (element.getTagName().equals("CostsStaff")) {
481 setTag(element,economyValue,10);
482 }
483 if (element.getTagName().equals("CostsYouth")) {
484 setTag(element,economyValue,12);
485 }
486 if (element.getTagName().equals("CostsSum")) {
487 setTag(element,economyValue,15);
488 }
489 if (element.getTagName().equals("ExpectedWeeksTotal")) {
490 setTag(element,economyValue,16);
491 }
492 if (element.getTagName().equals("LastIncomeSpectators")) {
493 setTag(element,economyValue,18);
494 }
495 if (element.getTagName().equals("LastIncomeSponsors")) {
496 setTag(element,economyValue,17);
497 }
498 if (element.getTagName().equals("LastIncomeFinancial")) {
499 setTag(element,economyValue,19);
500 }
501 if (element.getTagName().equals("LastIncomeTemporary")) {
502 setTag(element,economyValue,20);
503 }
504 if (element.getTagName().equals("LastIncomeSum")) {
505 setTag(element,economyValue,21);
506 }
507 if (element.getTagName().equals("LastCostsArena")) {
508 setTag(element,economyValue,24);
509 }
510 if (element.getTagName().equals("LastCostsPlayers")) {
511 setTag(element,economyValue,22);
512 }
513 if (element.getTagName().equals("LastCostsFinancial")) {
514 setTag(element,economyValue,26);
515 }
516 if (element.getTagName().equals("LastCostsTemporary")) {
517 setTag(element,economyValue,27);
518 }
519 if (element.getTagName().equals("LastCostsStaff")) {
520 setTag(element,economyValue,23);
521 }
522 if (element.getTagName().equals("LastCostsYouth")) {
523 setTag(element,economyValue,25);
524 }
525 if (element.getTagName().equals("LastCostsSum")) {
526 setTag(element,economyValue,28);
527 }
528 if (element.getTagName().equals("LastWeeksTotal")) {
529 setTag(element,economyValue,29);
530 }
531
532
533 }
534 }
535 }
536 /***
537 * @param childNodes
538 */
539 protected void analyzeTraining(NodeList nodelist) {
540
541 for (int i = 0; i < nodelist.getLength(); i++) {
542 if (nodelist.item(i) instanceof Element) {
543 Element element = (Element) nodelist.item(i);
544 if (element.getTagName().equals("HattrickData")) {
545 analyzeTraining(nodelist.item(i).getChildNodes());
546 }
547 if (element.getTagName().equals("Team")) {
548 analyzeTraining(nodelist.item(i).getChildNodes());
549 }
550 if (element.getTagName().equals("Trainer")) {
551 analyzeTraining(nodelist.item(i).getChildNodes());
552 }
553 if (element.getTagName().equals("TrainingLevel")) {
554 setTag(element,teamValue,1);
555 continue;
556 }
557 if (element.getTagName().equals("TrainingType")) {
558 setTag(element,teamValue,2);
559 Integer skill = new Integer(teamValue[2][1]);
560 teamValue[3][1] = RSC.MINIMODEL.getHelper().getNameForTraining(
561 skill.intValue());
562 continue;
563 }
564 if (element.getTagName().equals("TrainerID")) {
565 setTag(element,xtraValue,8);
566 continue;
567 }
568 if (element.getTagName().equals("TrainerName")) {
569 setTag(element,xtraValue,9);
570 continue;
571 }
572 if (element.getTagName().equals("ArrivalDate")) {
573 setTag(element,xtraValue,10);
574 continue;
575 }
576 if (element.getTagName().equals("Morale")) {
577 setTag(element,teamValue,4);
578 Integer skill = new Integer(teamValue[4][1]);
579 teamValue[5][1] = RSC.MINIMODEL.getHelper()
580 .getNameForTeamspirit(skill.intValue());
581 continue;
582 }
583 if (element.getTagName().equals("SelfConfidence")) {
584 setTag(element,teamValue,7);
585 Integer skill = new Integer(teamValue[7][1]);
586 teamValue[7][1] = RSC.MINIMODEL.getHelper()
587 .getNameForConfidence(skill.intValue());
588 continue;
589 }
590 if (element.getTagName().equals("Experience433")) {
591 setTag(element,teamValue,8);
592 continue;
593 }
594 if (element.getTagName().equals("Experience451")) {
595 setTag(element,teamValue,9);
596 continue;
597 }
598 if (element.getTagName().equals("Experience352")) {
599 setTag(element,teamValue,10);
600 continue;
601 }
602 if (element.getTagName().equals("Experience532")) {
603 setTag(element,teamValue,11);
604 continue;
605 }
606 if (element.getTagName().equals("Experience343")) {
607 setTag(element,teamValue,12);
608 continue;
609 }
610 if (element.getTagName().equals("Experience541")) {
611 setTag(element,teamValue,13);
612 continue;
613 }
614
615 }
616 }
617
618 }
619 /***
620 * @param childNodes
621 */
622 protected void analyzeWorldDetail(NodeList nodelist) {
623
624 for (int i = 0; i < nodelist.getLength(); i++) {
625 if (nodelist.item(i) instanceof Element) {
626 Element element = (Element) nodelist.item(i);
627 if (element.getTagName().equals("League")) {
628 analyzeWorldDetail(nodelist.item(i).getChildNodes());
629 continue;
630 }
631 if (element.getTagName().equals("LeagueList")) {
632 analyzeWorldDetail(nodelist.item(i).getChildNodes());
633 continue;
634 }
635 if (element.getTagName().equals("Country")) {
636 analyzeWorldDetail(nodelist.item(i).getChildNodes());
637 continue;
638 }
639 if (element.getTagName().equals("CurrencyName")) {
640 setTag(element,xtraValue,4);
641 continue;
642 }
643 if (element.getTagName().equals("CurrencyRate")) {
644 setTag(element,xtraValue,5);
645 continue;
646 }
647 if (element.getTagName().equals("CountryID")) {
648 setTag(element,basicsValue,12);
649 continue;
650 }
651 if (element.getTagName().equals("MatchRound")) {
652 setTag(element,basicsValue,5);
653 continue;
654 }
655 if (element.getTagName().equals("Season")) {
656 setTag(element,basicsValue,4);
657 continue;
658 }
659 if (element.getTagName().equals("LeagueID")) {
660 setTag(element,basicsValue,13);
661 continue;
662 }
663 if (element.getTagName().equals("TrainingDate")) {
664 setTag(element,xtraValue,1);
665 continue;
666 }
667 if (element.getTagName().equals("EconomyDate")) {
668 setTag(element,xtraValue,2);
669 continue;
670 }
671 if (element.getTagName().equals("SeriesMatchDate")) {
672 setTag(element,xtraValue,3);
673 continue;
674 }
675 }
676 }
677
678 }
679
680 protected void analyzeSinglePlayer(NodeList nodelist,
681 int index) {
682
683 for (int i = 0; i < nodelist.getLength(); i++) {
684 if (nodelist.item(i) instanceof Element) {
685 Element element = (Element) nodelist.item(i);
686
687 if (element.getTagName().equals("PlayerID")) {
688 setTag(element,playerValue,0,index);
689 playerValue[0][index] = playerValue[0][index]+"]";
690 continue;
691 }
692 if (element.getTagName().equals("PlayerName")) {
693 setTag(element,playerValue,1,index);
694 continue;
695 }
696 if (element.getTagName().equals("PlayerNumber")) {
697 setTag(element,playerValue,35,index);
698 continue;
699 }
700 if (element.getTagName().equals("Age")) {
701 setTag(element,playerValue,2,index);
702 continue;
703 }
704 if (element.getTagName().equals("InjuryLevel")) {
705 setTag(element,playerValue,3,index);
706 continue;
707 }
708 if (element.getTagName().equals("TSI")) {
709 setTag(element,playerValue,16,index);
710 continue;
711 }
712 if (element.getTagName().equals("PlayerForm")) {
713 setTag(element,playerValue,4,index);
714 continue;
715 }
716 if (element.getTagName().equals("Experience")) {
717 setTag(element,playerValue,13,index);
718 continue;
719 }
720 if (element.getTagName().equals("Leadership")) {
721 setTag(element,playerValue,14,index);
722 continue;
723 }
724
725 if (element.getTagName().equals("Salary")) {
726 setTag(element,playerValue,15,index);
727 continue;
728 }
729 if (element.getTagName().equals("Agreeability")) {
730 setTag(element,playerValue,26,index);
731 continue;
732 }
733 if (element.getTagName().equals("Aggressiveness")) {
734 setTag(element,playerValue,30,index);
735 continue;
736 }
737 if (element.getTagName().equals("Honesty")) {
738 setTag(element,playerValue,28,index);
739 continue;
740 }
741 if (element.getTagName().equals("LeagueGoals")) {
742 setTag(element,playerValue,18,index);
743 continue;
744 }
745 if (element.getTagName().equals("CupGoals")) {
746 setTag(element,playerValue,19,index);
747 continue;
748 }
749 if (element.getTagName().equals("FriendliesGoals")) {
750 setTag(element,playerValue,20,index);
751 continue;
752 }
753 if (element.getTagName().equals("CareerHattricks")) {
754 setTag(element,playerValue,21,index);
755 continue;
756 }
757 if (element.getTagName().equals("CareerGoals")) {
758 setTag(element,playerValue,17,index);
759 continue;
760 }
761 if (element.getTagName().equals("Cards")) {
762 setTag(element,playerValue,23,index);
763 continue;
764 }
765 if (element.getTagName().equals("StaminaSkill")) {
766 setTag(element,playerValue,5,index);
767 continue;
768 }
769 if (element.getTagName().equals("KeeperSkill")) {
770 setTag(element,playerValue,12,index);
771 continue;
772 }
773 if (element.getTagName().equals("PlaymakerSkill")) {
774 setTag(element,playerValue,6,index);
775 continue;
776 }
777 if (element.getTagName().equals("ScorerSkill")) {
778 setTag(element,playerValue,7,index);
779 continue;
780 }
781 if (element.getTagName().equals("PassingSkill")) {
782 setTag(element,playerValue,8,index);
783 continue;
784 }
785 if (element.getTagName().equals("WingerSkill")) {
786 setTag(element,playerValue,9,index);
787 continue;
788 }
789 if (element.getTagName().equals("DefenderSkill")) {
790 setTag(element,playerValue,11,index);
791 continue;
792 }
793 if (element.getTagName().equals("SetPiecesSkill")) {
794 setTag(element,playerValue,10,index);
795 continue;
796 }
797 if (element.getTagName().equals("CountryID")) {
798 setTag(element,playerValue,22,index);
799 continue;
800 }
801 if (element.getTagName().equals("Caps")) {
802 setTag(element,playerValue,38,index);
803 continue;
804 }
805 if (element.getTagName().equals("CapsU20")) {
806 setTag(element,playerValue,39,index);
807 continue;
808 }
809 if (element.getTagName().equals("Specialty")) {
810 setTag(element,playerValue,24,index);
811 continue;
812 }
813 if (element.getTagName().equals("TransferListed")) {
814 setTag(element,playerValue,36,index);
815 continue;
816 }
817 if (element.getTagName().equals("NationalTeamID")) {
818 setTag(element,playerValue,37,index);
819 continue;
820 }
821 if (element.getTagName().equals("TrainerData")){
822 analyzeSinglePlayer(nodelist.item(i).getChildNodes(),index);
823 continue;
824 }
825 if (element.getTagName().equals("TrainerType")) {
826 setTag(element,playerValue,32,index);
827 continue;
828 }
829 if (element.getTagName().equals("TrainerSkill")) {
830 setTag(element,playerValue,33,index);
831 continue;
832 }
833 }
834 }
835 playerValue[31][index] = RSC.MINIMODEL.getHelper().getNameForAggressivness(
836 Integer.parseInt(playerValue[30][index]));
837 playerValue[29][index] = RSC.MINIMODEL.getHelper().getNameForCharacter(
838 Integer.parseInt(playerValue[28][index]));
839 playerValue[27][index] = RSC.MINIMODEL.getHelper().getNameForGentleness(
840 Integer.parseInt(playerValue[26][index]));
841 if (!playerValue[24][index].equals("0"))
842 playerValue[25][index] = RSC.MINIMODEL.getHelper()
843 .getNameForSpeciality(
844 Integer.parseInt(playerValue[24][index]));
845 }
846
847 protected final void analyzeAllPlayers(NodeList nodelist) {
848 for (int i = 0; i < nodelist.getLength(); i++) {
849 if (nodelist.item(i) instanceof Element) {
850 if (nodelist.item(i).hasChildNodes()) {
851 Element element = (Element) nodelist.item(i);
852 if (element.getTagName().equals("Player")) {
853 int index = Integer.parseInt(element
854 .getAttribute("Index"));
855 analyzeSinglePlayer(nodelist.item(i)
856 .getChildNodes(), index+1);
857 analyzeAllPlayers(nodelist.item(i)
858 .getChildNodes());
859 }
860
861 }
862 }
863 }
864 }
865
866 protected final void initPlayersArray(NodeList nodelist) {
867
868 for (int i = 0; i < nodelist.getLength(); i++) {
869
870 if (nodelist.item(i) instanceof Element) {
871
872 Element element = (Element) nodelist.item(i);
873
874 if (element.getTagName().equals("HattrickData")) {
875 initPlayersArray(nodelist.item(i).getChildNodes());
876 }
877 if (element.getTagName().equals("Team")){
878 initPlayersArray(nodelist.item(i).getChildNodes());
879 continue;
880 }
881 if (element.getTagName().equals("PlayerList")) {
882 int tmp = Integer.parseInt(element.getAttribute("Count"));
883
884 initPlayerArray(tmp);
885 initPlayersArray(nodelist.item(i).getChildNodes());
886 break;
887 }
888 if (element.getTagName().equals("Player")) {
889 int index = Integer.parseInt(element
890 .getAttribute("Index"));
891 analyzeSinglePlayer(nodelist.item(i)
892 .getChildNodes(), index+1);
893
894
895 }
896
897 }
898 }
899 }
900
901 protected void initPlayerArray(int playerCount){
902
903 playerValue = new String[40][playerCount + 1];
904 playerValue[0][0] = "[player";
905 playerValue[1][0] = "name=";
906 playerValue[2][0] = "ald=";
907 playerValue[3][0] = "ska=";
908 playerValue[4][0] = "for=";
909 playerValue[5][0] = "uth=";
910 playerValue[6][0] = "spe=";
911 playerValue[7][0] = "mal=";
912 playerValue[8][0] = "fra=";
913 playerValue[9][0] = "ytt=";
914 playerValue[10][0] = "fas=";
915
916 playerValue[11][0] = "bac=";
917 playerValue[12][0] = "mlv=";
918 playerValue[13][0] = "rut=";
919 playerValue[14][0] = "led=";
920 playerValue[15][0] = "sal=";
921 playerValue[16][0] = "mkt=";
922 playerValue[17][0] = "gev=";
923 playerValue[18][0] = "gtl=";
924 playerValue[19][0] = "gtc=";
925 playerValue[20][0] = "gtt=";
926 playerValue[21][0] = "hat=";
927
928 playerValue[22][0] = "CountryID=";
929 playerValue[23][0] = "warnings=";
930 playerValue[24][0] = "speciality=";
931 playerValue[25][0] = "specialityLabel=";
932 playerValue[26][0] = "gentleness=";
933 playerValue[27][0] = "gentlenessLabel=";
934 playerValue[28][0] = "honesty=";
935 playerValue[29][0] = "honestyLabel=";
936 playerValue[30][0] = "Aggressiveness=";
937 playerValue[31][0] = "AggressivenessLabel=";
938 playerValue[32][0] = "TrainerType=";
939
940 playerValue[33][0] = "TrainerSkill=";
941 playerValue[34][0] = "rating=";
942 playerValue[35][0] = "PlayerNumber=";
943 playerValue[36][0] = "TransferListed=";
944 playerValue[37][0] = "NationalTeamID=";
945 playerValue[38][0] = "Caps=";
946 playerValue[39][0] = "CapsU20=";
947
948 for (int i = 1; i < playerValue[0].length; i++) {
949 playerValue[0][i] = "";
950 playerValue[1][i] = "";
951 playerValue[2][i] = RSC.DEFAULT;
952 playerValue[3][i] = RSC.DEFAULT;
953 playerValue[4][i] = RSC.DEFAULT;
954 playerValue[5][i] = RSC.DEFAULT;
955 playerValue[6][i] = RSC.DEFAULT;
956 playerValue[7][i] = RSC.DEFAULT;
957 playerValue[8][i] = RSC.DEFAULT;
958 playerValue[9][i] = RSC.DEFAULT;
959 playerValue[10][i] = RSC.DEFAULT;
960
961 playerValue[10][i] = RSC.DEFAULT;
962 playerValue[11][i] = RSC.DEFAULT;
963 playerValue[12][i] = RSC.DEFAULT;
964 playerValue[13][i] = RSC.DEFAULT;
965 playerValue[14][i] = RSC.DEFAULT;
966 playerValue[15][i] = RSC.DEFAULT;
967 playerValue[16][i] = RSC.DEFAULT;
968 playerValue[17][i] = RSC.DEFAULT;
969 playerValue[18][i] = RSC.DEFAULT;
970 playerValue[19][i] = RSC.DEFAULT;
971 playerValue[20][i] = RSC.DEFAULT;
972
973 playerValue[20][i] = RSC.DEFAULT;
974 playerValue[21][i] = RSC.DEFAULT;
975 playerValue[22][i] = RSC.DEFAULT;
976 playerValue[23][i] = "";
977 playerValue[24][i] = RSC.DEFAULT;
978 playerValue[25][i] = "";
979 playerValue[26][i] = RSC.DEFAULT;
980 playerValue[27][i] = "";
981 playerValue[28][i] = RSC.DEFAULT;
982 playerValue[29][i] = "";
983 playerValue[30][i] = "";
984
985 playerValue[30][i] = "";
986 playerValue[31][i] = "";
987 playerValue[32][i] = "";
988 playerValue[33][i] = "";
989 playerValue[34][i] = RSC.DEFAULT;
990 playerValue[35][i] = RSC.DEFAULT;
991 }
992
993 }
994 protected static final Document getDocument(File file) throws ParserConfigurationException,
995 IOException, SAXException {
996 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
997 DocumentBuilder builder = factory.newDocumentBuilder();
998 return builder.parse(file);
999 }
1000 }