/** metoda obslugi watku. */
  public final void run() {
    /** Zmienna do obslugi zczytywania danych z pliku. */
    Scanner scanner = null;
    try {
      scanner = new Scanner(new File(config.getLocInput()));
      System.out.println("Odczytano sciezke do pliku!");
    } catch (FileNotFoundException e) {
      System.out.println("Blad odczytu pliku!");
    }

    // dopoki jest nastepna linia
    while (scanner.hasNextLine()) {
      timestamp = new Timestamp[(int) config.getBatchSize()];
      loglevel = new String[(int) config.getBatchSize()];
      details = new String[(int) config.getBatchSize()];

      for (int i = 0; i < config.getBatchSize(); ++i) {
        // jezeli nie ma nastepnej linii to konczy
        if (!scanner.hasNextLine()) {
          break;
        }
        data = scanner.nextLine();

        // jesli nie jest to pusta linia
        if (!(data.equals(""))) {
          parts = data.split(" "); // wyszukiwanie spacji
          setValues(i);
        }
      }
      // tworzenie Zdarzen
      createEvents();
    }
    System.out.println("Odczytano plik!");
    scanner.close();
  }
  /** metoda sluzaca do tworzenia zdarzen. */
  public final void createEvents() {
    /** Zmienna do przechowywania czasu uspienia (w ms). */
    final int timeToSleep = 1000;

    for (int i = 0; i < config.getBatchSize(); ++i) {
      if (timestamp[i] != null) {
        Event a;
        try {
          a = new Event(timestamp[i], loglevel[i], details[i]);
          while (!queue.acceptEvent(a)) {
            System.out.println(
                "Nie udalo sie dodac Eventu("
                    + timestamp[i]
                    + ", "
                    + loglevel[i]
                    + ", "
                    + details[i]);
            System.out.println("Ponawiam...");
            try {
              Thread.sleep(timeToSleep);
            } catch (InterruptedException e) {
              e.printStackTrace();
            }
          }
        } catch (InvalidEventException e1) {
          e1.printStackTrace();
        }

        System.out.println("Dodano Event(" + timestamp[i] + ", " + loglevel[i] + ", " + details[i]);
      }
    }
  }