
package de.ivu.elect.business.wahl.boundary;

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

import de.ivu.elect.business.ergebnis.boundary.ErgebnisDAO;
import de.ivu.elect.business.ergebnis.control.StimmergebnisDatenCreator;
import de.ivu.elect.business.wahl.control.WahlExportContext;
import de.ivu.elect.business.wahl.control.WahlExportObject;

@Stateless
@Specializes
public class WasWahlExporter extends WahlExporter {

  @Inject
  private transient WahldurchfuehrungDAO wahldurchfuehrungDAO;

  @Inject
  private transient ErgebnisDAO ergebnisDAO;

  @Inject
  private transient StimmergebnisDatenCreator stimmergebnisDatenCreator;

  public WasWahlExporter() {
    super();
  }

  @Override
  public WahlExportObject getExportObject(WahlExportContext wahlExportContext) {
    var wahl = wahldurchfuehrungDAO.findByPrimaryKey(wahlExportContext.getWahl().getPk());
    var stimmergebnisDaten = stimmergebnisDatenCreator.createErgebnisDatenExporte(wahl.bestimmeZuBerechnendesErgebnis(ergebnisDAO));
    return new WahlExportObject(stimmergebnisDaten, getDokumentVorlagen(wahl), getWahlParameters(wahl));
  }
}
