Package pi.event

Class PeriodicTaskExecutor

java.lang.Object
pi.event.PeriodicTaskExecutor
All Implemented Interfaces:
FrameUpdateListener

public final class PeriodicTaskExecutor extends Object implements FrameUpdateListener
Führt Aufgaben regelmäßig aus.
Author:
Niklas Keller, Josef Friedrich
See Also:
  • Field Details

    • isPaused

      public boolean isPaused
      Gibt an, ob die Aufgabe pausiert ist.
  • Constructor Details

    • PeriodicTaskExecutor

      public PeriodicTaskExecutor(double interval, int repetitions, PeriodicTask task, PeriodicTask finalTask, FrameUpdateListenerRegistration container)
      Erzeugt eine neue periodische Aufgabe, die eine Referenz auf den übergeordneten Behälter verlangt, in dem diese periodische Aufgabe angemeldet wurde. Die Ausführung wird nach einer bestimmten Anzahl an Wiederholungen unterbrochen und als letzte Wiederholungen eine abschließende Aufgabe ausgeführt.
      Parameters:
      interval - Die Zeit zwischen den Ausführungen in Sekunden.
      repetitions - Die Anzahl an Wiederholungen der Aufgabe. Gibt an, wie oft die Aufgabe wiederholt wird. Ist dieses Attribut auf -1 gesetzt, so wird die Aufgabe unendlich oft wiederholt.
      task - Die Aufgabe, die regelmäßig ausgeführt wird.
      finalTask - Die Aufgabe, die als letzte Aufgabe ausgeführt wird.
      container - Eine Referenz auf den übergeordneten Behälter, in dem diese periodische Aufgabe angemeldet wurde. Diese Referenz wird dazu verwendet, um die periodische Ausführung abzumelden und dadurch zu stoppen.
    • PeriodicTaskExecutor

      public PeriodicTaskExecutor(double interval, PeriodicTask task, FrameUpdateListenerRegistration container)
      Erzeugt eine neue periodische Aufgabe, die eine Referenz auf den übergeordneten Behälter verlangt, in dem diese periodische Aufgabe angemeldet wurde.
      Parameters:
      interval - Die Zeit zwischen den Ausführungen in Sekunden.
      task - Die Aufgabe, die regelmäßig ausgeführt wird.
      container - Eine Referenz auf den übergeordneten Behälter, in dem diese periodische Aufgabe angemeldet wurde. Diese Referenz wird dazu verwendet, um die periodische Ausführung abzumelden und dadurch zu stoppen.
    • PeriodicTaskExecutor

      public PeriodicTaskExecutor(double interval, PeriodicTask task)
      Erzeugt eine neue periodische Aufgabe ohne eine Referenz auf den übergeordneten Behälter, in dem diese periodische Aufgabe angemeldet wurde.
      Parameters:
      interval - Die Zeit zwischen den Ausführungen in Sekunden.
      task - Die Aufgabe, die regelmäßig ausgeführt wird. Ein Objekt vom Typ Runnable, das eine ausführbare Methode enthält oder ein Lambda-Ausdruck.
  • Method Details

    • setInterval

      @API public PeriodicTaskExecutor setInterval(double interval)
      Setzt das Intervall dieses periodischen Tasks neu.
      Parameters:
      interval - Das neue Intervall. Zeit zwischen den Ausführungen in Sekunden. Muss größer als 0 sein.
      Returns:
      Eine Instanz dieses Objekts, damit das Objekt über verkettete Setter konfiguriert werden kann.
    • interval

      @API @Getter public double interval()
      Gibt das aktuelle Intervall der periodischen Aufgabe aus.
      Returns:
      Das aktuelle Intervall. Die Zeit zwischen den Ausführungen in Sekunden.
    • repetitions

      @Setter public PeriodicTaskExecutor repetitions(int repetitions)
      Setzt die Anzahl an Wiederholungen der Aufgabe.
      Parameters:
      repetitions - Die Anzahl an Wiederholungen der Aufgabe.
      Returns:
      Eine Instanz dieses Objekts, damit das Objekt über verkettete Setter konfiguriert werden kann.
    • repetitions

      @Getter public int repetitions()
      Gibt die Anzahl an Wiederholungen der Aufgabe zurück.
      Returns:
      Die Anzahl an Wiederholungen der Aufgabe.
    • task

      Setzt die Aufgabe, die regelmäßig ausgeführt wird.
      Parameters:
      task - Die Aufgabe, die regelmäßig ausgeführt wird.
      Returns:
      Eine Instanz dieses Objekts, damit das Objekt über verkettete Setter konfiguriert werden kann.
    • task

      @Getter public PeriodicTask task()
      Gibt die Aufgabe, die regelmäßig ausgeführt wird, zurück.
      Returns:
      Die Aufgabe, die regelmäßig ausgeführt wird.
    • finalTask

      @Setter public PeriodicTaskExecutor finalTask(PeriodicTask finalTask)
      Setzt die Aufgabe, die als letzte Aufgabe ausgeführt wird.
      Parameters:
      finalTask - Die Aufgabe, die als letzte Aufgabe ausgeführt wird.
      Returns:
      Eine Instanz dieses Objekts, damit das Objekt über verkettete Setter konfiguriert werden kann.
    • finalTask

      @Getter public PeriodicTask finalTask()
      Gibt die Aufgabe, die als letzte Aufgabe ausgeführt wird, zurück.
      Returns:
      Die Aufgabe, die als letzte Aufgabe ausgeführt wird.
    • pause

      public void pause()
      Pausiert die periodische Ausführung der Aufgabe.
    • resume

      public void resume()
      Führt die periodische Aufgabe fort.
    • toggle

      public void toggle()
      Schaltet je nach Zustand zwischen den Zuständen pausiert und nicht pausiert hin und her.
    • unregister

      public void unregister()
      Stoppt die periodische Ausführung. Sie kann dann nicht mehr neu gestartet werden.
      Throws:
      RuntimeException - Falls kein container gesetzt ist.
    • unregisterSafe

      public void unregisterSafe()
      Stoppt die periodische Ausführung und wirft dabei keine Ausnahme. Sie kann dann nicht mehr neu gestartet werden.