
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.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.stimmzettel.control.StimmzettelExportContext;
import de.ivu.elect.business.wahlvorschlag.boundary.WahlvorschlaegeDokumentContext;
import de.ivu.elect.business.wahlvorschlag.boundary.WahlvorschlaegeNachGebietDokumentGenerator;

public class StimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapper extends AbstractStimmzettelByDokumentGeneratorDocumentMapper<List<Gebiet>, WahlvorschlaegeDokumentContext> {

  @Inject
  private transient WahlvorschlaegeNachGebietDokumentGenerator wahlvorschlaegeNachGebietDokumentGenerator;

  public StimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapper() {
    super();
  }

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

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