/** * Setzt die aktuelle {@link java.util.ArrayList Liste} auf die {@link java.util.ArrayList Liste} * der {@link Match Matches}, die zu den Stichworten passt -> Fuehrt eine Suche nach {@link Match * Matches} mit den gegebenen Begriffen durch * * @param begriffe Array mit den Begriffen, nach denen gesucht werden soll */ public ArrayList<Match> einfSuchListe(String... begriffe) { ArrayList<Match> temp = new ArrayList<Match>(); ArrayList<Match> matches = getAktuelleListe(); for (int i = 0; i < matches.size(); i++) { Match match = matches.get(i); if (match.containsBegriffe(begriffe)) temp.add(matches.get(i)); } aktuelleList = temp; return aktuelleList; }
/** * Liest unser LoungeMatchdatenFile und erstellt daraus eine {@link java.util.ArrayList Liste} von * {@link Match Matches} * * @throws IOException */ private void readLoungeDataFromFile() throws IOException { String line; /** * Laeuft bis es die erste Zeile findet, welche kein Semikolon enthaelt (also exakt die letzte * Zeile des Files) */ while (((line = reader.readLine()) != null) && line.contains(";")) { try { /** Erste Zeile ueberspringen */ if (line.startsWith("ID")) { continue; } // TODO: tokenizer durch string.split() ersetzen. /** String zerlegen und einzelne Werte auslesen */ tokenizer = new StringTokenizer(line, ";"); String matchID = tokenizer.nextToken(); String jahr = tokenizer.nextToken(); String monat = tokenizer.nextToken(); String tag = tokenizer.nextToken(); String stunde = tokenizer.nextToken(); String minute = tokenizer.nextToken(); String team1 = tokenizer.nextToken(); String team1Odds = tokenizer.nextToken(); String team2 = tokenizer.nextToken(); String team2Odds = tokenizer.nextToken(); String winner = tokenizer.nextToken(); String finished = tokenizer.nextToken(); String event = tokenizer.nextToken(); String matchType = tokenizer.nextToken(); /** Date Objekt anlegen, ist zwar deprecated aber funktioniert noch super. */ // @SuppressWarnings("deprecation") // Date date = new Date(Integer.parseInt(jahr), Integer.parseInt(monat)-1, // Integer.parseInt(tag), Integer.parseInt(stunde), Integer.parseInt(minute), 0); GregorianCalendar date = new GregorianCalendar( Integer.parseInt(jahr), Integer.parseInt(monat) - 1, Integer.parseInt(tag), Integer.parseInt(stunde), Integer.parseInt(minute)); /** Match Objekt mit entsprechenden Informationen anlegen. */ Match match = new Match( matchID, team1, team2, event, Integer.parseInt(matchType), date, team1Odds, team2Odds); match.setWinner(Integer.parseInt(winner)); match.setMatchtyp(Matchtyp.CSGOLounge); /** Hinzufuegen des Matches in unsere Archivliste, falls es keine 0er Odds enthaelt. */ if (!(Integer.parseInt(team1Odds) == 0 || Integer.parseInt(team2Odds) == 0)) { loungeMatchList.add(match); } } /** * Jegliche Exception die geworfen werden kann, deutet darauf hin, dass die entsprechende * Zeile des Files ein Match enthaelt, welches fehlerhafe Informationen enthaelt. Deshalb * koennen wir dies einfach ueberspringen und nicht in unser Matcharchiv mit aufnehmen. */ catch (Exception e) { continue; } } }
public ArrayList<Match> getBothMatchesArchive() throws IOException { // TODO Liste von CSGL Matches, welche auch in der EGB Liste drin sind. Hierfuer LinkedListOpen // benutzen. File file = new File("C:" + File.separator + "csgobetting" + File.separator + "linklistclosed.txt"); @SuppressWarnings("resource") BufferedReader reader = new BufferedReader(new FileReader(file)); ArrayList<Match> tempList = new ArrayList<Match>(); ArrayList<Match> loungeMatches = getLoungeMatches(); ArrayList<Match> egbMatches = getEGBMatches(); StringTokenizer tokenizer; String line; while (((line = reader.readLine()) != null) && line.contains(";")) { tokenizer = new StringTokenizer(line, ";"); String loungeID = tokenizer.nextToken(); String egbID = tokenizer.nextToken(); String switchedTeams = tokenizer.nextToken(); Match loungeMatch = null; Match egbMatch = null; for (int i = loungeMatches.size() - 1; i >= 0; i--) { if (loungeMatches.get(i).getID().equals(loungeID)) { loungeMatch = loungeMatches.get(i); break; } } for (int i = egbMatches.size() - 1; i >= 0; i--) { if (egbMatches.get(i).getID().equals(egbID)) { egbMatch = egbMatches.get(i); break; } } try { if (Integer.parseInt(switchedTeams) == 1) { egbMatch.setSwitched(true); } loungeMatch.setRelatedEGBMatch(egbMatch); egbMatch.setRelatedCSGLMatch(loungeMatch); tempList.add(loungeMatch); } catch (Exception e) { // TODO Auto-generated catch block // e.printStackTrace(); System.out.println( "Liegt vermutlich daran, dass Odds fuer ein Team 0 sind, und deswegen ein Match nicht erstellt wurde. LoungeID: " + loungeID + " egbID: " + egbID); } } reader.close(); bothMatchArchiveList = tempList; return bothMatchArchiveList; }