
package de.ivu.elect.was.exchange.ergebnis;

import java.util.Collection;

import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.entity.Stimmabgabeart;
import de.ivu.elect.business.security.Customer;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingabestatus;
import de.ivu.elect.business.wahl.control.AbstractNlExportArtefaktNachSystemExportstatusExportContext;
import de.ivu.elect.business.wahl.entity.NlWahlart;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.was.exchange.ergebnis.eml.AbstractNlWasEml510xNachGebietErgebniseingabestatusExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510bGSBErgebnisExportMapper;

/**
 * ELECT-16681
 *
 * @see NlWasModelP1f2MainDocumentExportMapper
 * @see NlWasModelP1f2Osv43CsvExportMapper
 */
public class NlWasModelP1f2Eml510bExportMapper extends AbstractNlWasEml510xNachGebietErgebniseingabestatusExportMapper implements NlWasModelP1f2ExportMapper {

  @Inject
  private transient Eml510bGSBErgebnisExportMapper eml510bGSBErgebnisExportMapper;

  public NlWasModelP1f2Eml510bExportMapper() {
    super();
  }

  @Override
  public boolean supportsBulkExportNachSystemExportstatus(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return NlWasModelP1f2ExportMapperHelper.supportsBulkExportNachSystemExportstatus(context);
  }

  @Override
  protected boolean isAcceptWahlebene(Wahl wahl, Customer customer) {
    return NlWasModelP1f2ExportMapperHelper.isAcceptWahlebene(wahl, customer);
  }

  @Override
  protected Collection<NlWahlart> collectWahlartenAccepted() {
    return NlWasModelP1f2ExportMapperHelper.collectWahlartenAccepted();
  }

  @Override
  protected Collection<Stimmabgabeart> collectStimmabgabeartenAccepted() {
    return NlWasModelP1f2ExportMapperHelper.collectStimmabgabeartenAccepted();
  }

  @Override
  protected Collection<Ergebniseingabestatus> collectErgebniseingabestatusAccepted() {
    return NlWasModelP1f2ExportMapperHelper.collectErgebniseingabestatusAccepted();
  }

  @Override
  protected Eml510bGSBErgebnisExportMapper getEmlExportMapper() {
    return eml510bGSBErgebnisExportMapper;
  }
}
