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.WahlterminPK;

// ELECT-8738
public abstract class AbstractWahlterminMultipleCronTimerAsync extends AbstractElectMultipleCronTimerAsync<WahlterminPK> {

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

  @Inject
  private transient WahlWahlterminVorhanden wahlWahlterminVorhanden;

  @Override
  protected void handle(WahlterminPK wahlterminPK) throws Exception {
    if (wahlWahlterminVorhanden.isVorhanden(wahlterminPK)) {
      handleWahltermin(wahlterminPK);
    } else {
      LOG.info("Wahltermin nicht mehr vorhanden, Timer nicht ausgeführt: " + wahlterminPK);
    }
  }

  protected abstract void handleWahltermin(WahlterminPK wahlterminPK) throws Exception;
}
