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

import java.util.List;

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

import de.ivu.elect.business.exchange.control.FileFormat;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeImportContext;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingang;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabeImporterErsetzenStrategie;
import de.ivu.elect.exchange.ImportMapper;


import static java.util.Arrays.asList;

@Specializes
public class NlStimmeingabeImportExchange extends DefaultStimmeingabeImportExchange {

  @Inject
  private transient Eml510aBackupRestoreImportMapper eml510aBackupRestoreImportMapper;

  @Inject
  private transient Eml510StimmeingabeImportMapper eml510StimmeingabeImportMapper;

  @Inject
  private transient Eml510StimmeingabeZipImportMapper eml510StimmeingabeZipImportMapper;

  public NlStimmeingabeImportExchange() {
    super();
  }

  @Override
  protected Iterable<? extends ImportMapper<List<Ergebniseingang>, StimmeingabeImportContext>> getAllSupportedMapper() {
    return asList( //
        eml510aBackupRestoreImportMapper, //

        eml510StimmeingabeImportMapper, //
        eml510StimmeingabeZipImportMapper //
    );
  }

  @Override
  public StimmeingabeImporterErsetzenStrategie getStimmeingabeImporterErsetzenStrategie(FileFormat fileFormat, StimmeingabeImportContext context) {
    return new NlStimmeingabeImporterErsetzenStrategie();
  }

}
