package de.ivu.elect.business.system.control;

import javax.inject.Inject;

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

import de.ivu.elect.business.wahl.entity.WahlPK;

// ELECT-8738
public abstract class AbstractWahlMultipleCronTimerAsync extends AbstractElectMultipleCronTimerAsync<WahlPK> {

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

  @Inject
  private transient WahlWahlterminVorhanden wahlWahlterminVorhanden;

  @Override
  protected void handle(WahlPK wahlPK) throws Exception {
    if (wahlWahlterminVorhanden.isVorhanden(wahlPK)) {
      handleWahl(wahlPK);
    } else {
      LOG.info("Wahl nicht mehr vorhanden, Timer nicht ausgeführt: " + wahlPK);
    }
  }

  protected abstract void handleWahl(WahlPK wahlPK) throws Exception;
}
