
package de.ivu.elect.dokumente.stimmzettel;

import java.util.List;

import javax.inject.Inject;

import de.ivu.elect.business.dokumente.boundary.AbstractDokumentGenerator;
import de.ivu.elect.business.dokumente.control.ElectDokumentContext;
import de.ivu.elect.business.gebietsbaum.boundary.WahlverwaltungGebietInformation;
import de.ivu.elect.business.stimmzettel.control.StimmzettelExportContext;
import de.ivu.elect.business.wahlvorschlag.boundary.WahlvorschlaegeAlsListeDokumentGenerator;
import de.ivu.elect.business.wahlvorschlag.boundary.WahlvorschlaegeDokumentContext;
import de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag;

public class StimmzettelByWahlvorschlaegeAlsListeDokumentGeneratorDocumentMapper extends AbstractStimmzettelByDokumentGeneratorDocumentMapper<List<Wahlvorschlag>, WahlvorschlaegeDokumentContext> {

  @Inject
  private transient WahlvorschlaegeAlsListeDokumentGenerator wahlvorschlaegeAlsListeDokumentGenerator;

  public StimmzettelByWahlvorschlaegeAlsListeDokumentGeneratorDocumentMapper() {
    super();
  }

  @Override
  protected AbstractDokumentGenerator<List<Wahlvorschlag>, WahlvorschlaegeDokumentContext> getDokumentGenerator() {
    return wahlvorschlaegeAlsListeDokumentGenerator;
  }

  @Override
  protected WahlvorschlaegeDokumentContext createDokumentContext(StimmzettelExportContext context, WahlverwaltungGebietInformation auswertungsgebietInformation) {
    return new WahlvorschlaegeDokumentContext(new ElectDokumentContext(context), auswertungsgebietInformation.getGebiet().orElse(null), context.getKandidaturFormatDarstellung());
  }
}
