package de.ivu.elect.business.stimmeingabe.control.background;

import javax.ejb.DependsOn;
import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Startup;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.ivu.elect.business.mandant.entity.EntityPKMitMandant;
import de.ivu.elect.business.system.control.AbstractElectMultipleCronTimer;
import de.ivu.elect.business.system.control.AbstractElectMultipleCronTimerAsync;
import de.ivu.elect.business.wahl.entity.WahlPK;
import de.ivu.elect.business.wahl.entity.WahlParameterWerte;


import static de.ivu.elect.business.wahl.entity.WahlParameterWerte.STIMMEINGABEN_CUSTOM_FORMAT_IMPORT_CRONTAB;

/**
 *  on 03.01.2017.
 */
@Startup
@Singleton
@DependsOn("StartupSingleton")
public class StimmeingabeCustomFormatImportCronTimer extends AbstractElectMultipleCronTimer<WahlPK> {

  private static final Logger LOG = LoggerFactory.getLogger(StimmeingabeCustomFormatImportCronTimer.class);

  @EJB
  StimmeingabeCustomFormatImportAsync async;

  @Override
  protected Logger getLog() {
    return LOG;
  }

  @Override
  protected AbstractElectMultipleCronTimerAsync<WahlPK> getAsync() {
    return async;
  }

  @Override
  protected WahlParameterWerte getWahlParameterWerte() {
    return STIMMEINGABEN_CUSTOM_FORMAT_IMPORT_CRONTAB;
  }

  public void timeoutFuerWahl(WahlPK wahlPK) {
    timeout(wahlPK);
  }

  @Override
  protected EntityPKMitMandant bestimmeMandantAusPayload(WahlPK wahlPK) {
    return bestimmeMandant(wahlPK);
  }

}
