
package de.ivu.elect.dokumente.stimmzettel;

import static java.util.Collections.emptyList;

import java.util.Arrays;
import java.util.List;
import java.util.Map.Entry;

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.WahlverwaltungGebietInformation;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.stimmzettel.entity.StimmzettelDaten;
import de.ivu.elect.business.wahl.entity.Wahl;

public abstract class AbstractStimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapperExportMapper extends AbstractStimmzettelByDokumentGeneratorDocumentMapperExportMapper<List<Gebiet>> {

  @Inject
  private transient StimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapper stimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapper;

  public AbstractStimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapperExportMapper() {
    super();
  }

  @Override
  protected StimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapper getDokumentGeneratorDocumentMapper() {
    return stimmzettelByWahlvorschlaegeNachGebietDokumentGeneratorDocumentMapper;
  }

  @Override
  protected List<Gebiet> collectDokumentEntities(Wahl wahl, WahlverwaltungGebietInformation auswertungsgebietInformation,
      List<Entry<WahlverwaltungGebietInformation, StimmzettelDaten>> stimmzettelDatenPerStimmzettelgebiet) {
    return auswertungsgebietInformation.getGebiet().map(Arrays::asList).orElse(emptyList());
  }
}
