package de.ivu.elect.background.scheduler;

import de.ivu.elect.business.konfiguration.entity.ElectKonfigurationWerte;
import de.ivu.elect.business.system.entity.SystemLogQuelle;

public enum SchedulerTyp {

  PRAESENTATION_GENERIEREN {
    @Override
    public SystemLogQuelle getSystemLogQuelle() {
      return SystemLogQuelle.PRAESENTATION_GENERIEREN;
    }

    @Override
    public ElectKonfigurationWerte getAnzahlSlotsParameter() {
      return ElectKonfigurationWerte.PRAESENTATION_GENERIEREN_ANZAHL_SLOTS;
    }

    @Override
    public ElectKonfigurationWerte getWartezeitInSekundenParameter() {
      return ElectKonfigurationWerte.PRAESENTATION_EXPORT_INTERNET_MINIMALE_PAUSE_IN_SEKUNDEN;
    }
  },
  PRAESENTATION_ASYNCHRON_BEREITSTELLEN {
    @Override
    public SystemLogQuelle getSystemLogQuelle() {
      return SystemLogQuelle.PRAESENTATION_BEREITSTELLEN;
    }

    @Override
    public ElectKonfigurationWerte getAnzahlSlotsParameter() {
      return ElectKonfigurationWerte.PRAESENTATION_EXPORT_UPLOAD_ASYNCHRON_ANZAHL_SLOTS;
    }

    @Override
    public ElectKonfigurationWerte getWartezeitInSekundenParameter() {
      return ElectKonfigurationWerte.PRAESENTATION_EXPORT_UPLOAD_ASYNCHRON_WARTEZEIT_IN_SEKUNDEN;
    }
  };

  public abstract SystemLogQuelle getSystemLogQuelle();

  public abstract ElectKonfigurationWerte getAnzahlSlotsParameter();

  public abstract ElectKonfigurationWerte getWartezeitInSekundenParameter();

}
