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

import static java.util.Arrays.asList;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.control.ErgebnisExportContext;
import de.ivu.elect.business.ergebnis.control.ErgebnisExportObject;
import de.ivu.elect.exchange.ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.csv.Osv43ErgebnisCsvExportMapper;
import de.ivu.elect.was.exchange.ergebnis.csv.Osv55ErgebnisCsvExportMapper;
import de.ivu.elect.was.exchange.ergebnis.csv.Osv56ErgebnisCsvExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510aPSBErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510bHSBErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510bPSBEmptyErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510bPSBErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510cCSBErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510cHSBEmptyErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510cHSBErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510dCSBEmptyErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml510dCSBErgebnisExportMapper;
import de.ivu.elect.was.exchange.ergebnis.eml.Eml520ErgebnisExportMapper;

@Specializes
public class NlDefaultErgebnisExportExchange extends DefaultErgebnisExportExchange {

  @Inject
  private transient Osv55ErgebnisCsvExportMapper osv55ErgbebnisCsvExportMapper;

  @Inject
  private transient Osv56ErgebnisCsvExportMapper osv56ErgbebnisCsvExportMapper;

  @Inject
  private transient Osv43ErgebnisCsvExportMapper osv43ErgbebnisCsvExportMapper;

  @Inject
  private transient Eml510bPSBErgebnisExportMapper eml510bPSBErgebnisExportMapper;

  @Inject
  private transient Eml510cHSBErgebnisExportMapper eml510cHSBErgebnisExportMapper;

  @Inject
  private transient Eml510dCSBErgebnisExportMapper eml510dCSBErgebnisExportMapper;

  @Inject
  private transient Eml510aPSBErgebnisExportMapper eml510aPSBErgebnisExportMapper;

  @Inject
  private transient Eml510bHSBErgebnisExportMapper eml510bHSBErgebnisExportMapper;

  @Inject
  private transient Eml510cCSBErgebnisExportMapper eml510cCSBErgebnisExportMapper;

  @Inject
  private transient Eml510bPSBEmptyErgebnisExportMapper eml510bPSBEmptyErgebnisExportMapper;

  @Inject
  private transient Eml510cHSBEmptyErgebnisExportMapper eml510cHSBEmptyErgebnisExportMapper;

  @Inject
  private transient Eml510dCSBEmptyErgebnisExportMapper eml510dCSBEmptyErgebnisExportMapper;

  @Inject
  private transient Eml520ErgebnisExportMapper eml520ErgebnisExportMapper;

  public NlDefaultErgebnisExportExchange() {
    super();
  }

  @Override
  protected Iterable< ? extends ExportMapper<ErgebnisExportObject, ErgebnisExportContext>> getAllSupportedMapper() {
    return asList( //
        // ELECTVAPP-788
        // eml510bPSBErgebnisExportMapper, //
        // eml510cHSBErgebnisExportMapper, //
        // eml510dCSBErgebnisExportMapper, //

        // ELECTVAPP-788
        // eml520ErgebnisExportMapper, //

        // ELECT-10319
        // eml510bPSBEmptyErgebnisExportMapper, //
        // eml510cHSBEmptyErgebnisExportMapper, //
        // eml510dCSBEmptyErgebnisExportMapper, //

        // ELECTVAPP-788
        // eml510aPSBErgebnisExportMapper, //
        // eml510bHSBErgebnisExportMapper, //
        // eml510cCSBErgebnisExportMapper, //

        // ELECTVAPP-53
        // osv55ErgbebnisCsvExportMapper, //
        osv56ErgbebnisCsvExportMapper, //
        osv43ErgbebnisCsvExportMapper //
    );
  }
}
