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

import javax.ejb.Stateless;
import javax.inject.Inject;

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

import de.ivu.elect.business.mandant.entity.EntityPKMitMandant;
import de.ivu.elect.business.system.control.AbstractWahlMultipleCronTimerAsync;
import de.ivu.elect.business.system.entity.SystemLogQuelle;
import de.ivu.elect.business.wahl.entity.WahlPK;
import de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemWahlbeteiligungUebernehmenEvent;

@Stateless
public class WahllokalsystemWahlbeteiligungUebernehmenAsync extends AbstractWahlMultipleCronTimerAsync {

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

  @Inject
  private transient WahllokalsystemWahlbeteiligungUebernehmenEvent wahllokalsystemWahlbeteiligungUebernehmenEvent;

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

  @Override
  protected void handleWahl(WahlPK wahlPK) throws Exception {
    wahllokalsystemWahlbeteiligungUebernehmenEvent.sendEvent(); // nur Event senden...
  }

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

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

