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

import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.control.NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext;
import de.ivu.elect.business.security.Customer;
import de.ivu.elect.business.wahl.entity.NlWahlart;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.was.exchange.ergebnis.csv.Osv43ErgebnisCsvExportMapper;

/**
 * @see NlWasModelIIMainDocumentExportMapper
 * @see NlWasModelIIBijlage1DocumentExportMapper
 * @see NlWasModelIIEml510bExportMapper
 * @see NlWasModelIIEml510dExportMapper
 *
 * @deprecated ELECT-15233, Model II -> Model Na 31-2
 */
@Deprecated
public class NlWasModelIIOsv43CsvExportMapper extends AbstractNlWasModelIIOsvXxCsvExportMapper {

  @Inject
  private transient Osv43ErgebnisCsvExportMapper osv43ErgebnisCsvExportMapper;

  public NlWasModelIIOsv43CsvExportMapper() {
    super();
  }

  @Override
  protected boolean isAcceptContextIgnoringSystemExportstatus(NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext context) {
    return FILE_FORMAT_EXPORTIERBAR && super.isAcceptContextIgnoringSystemExportstatus(context); // ELECT-15233, Model II -> Model Na 31-2
  }

  @Override // ELECT-12706, cf. NlWasModelP221Osv43CsvExportMapper#collectWahlartenAccepted...
  protected boolean isAcceptWahlebene(Wahl wahl, Customer customer) {
    return super.isAcceptWahlebene(wahl, customer) || NlWahlart.isWasCSB(wahl, customer);
  }

  @Override
  protected ErgebnisExportMapper getCsvExportMapper() {
    return osv43ErgebnisCsvExportMapper;
  }
}
