
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;

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

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

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

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