/**
   * 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;
  }