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

import java.util.Collection;
import java.util.HashSet;

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

import de.ivu.elect.core.exchange.wahl.NlExportArtefaktNachSystemExportstatusExportMapperResolver;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelE2ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelIExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelIIExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelN10ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelN11ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelO3ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelP221BijlageExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelP221ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelP222BijlageExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelP222ExportMapper;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelU16ExportMapper;

@Specializes
public class NlWasExportArtefaktNachSystemExportstatusExportMapperResolver extends NlExportArtefaktNachSystemExportstatusExportMapperResolver {

  @Inject
  private transient Instance<NlWasModelIExportMapper> modelIExportMappers;

  @Inject
  private transient Instance<NlWasModelIIExportMapper> modelIIExportMappers;

  @Inject
  private transient Instance<NlWasModelE2ExportMapper> modelE2ExportMappers;

  @Inject
  private transient Instance<NlWasModelN10ExportMapper> modelN10ExportMappers;

  @Inject
  private transient Instance<NlWasModelN11ExportMapper> modelN11ExportMappers;

  @Inject
  private transient Instance<NlWasModelO3ExportMapper> modelO3ExportMappers;

  @Inject
  private transient Instance<NlWasModelP221ExportMapper> modelP221ExportMappers;

  @Inject
  private transient Instance<NlWasModelP221BijlageExportMapper> modelP221BijlageExportMappers;

  @Inject
  private transient Instance<NlWasModelP222ExportMapper> modelP222ExportMappers;

  @Inject
  private transient Instance<NlWasModelP222BijlageExportMapper> modelP222BijlageExportMappers;

  @Inject
  private transient Instance<NlWasModelU16ExportMapper> modelU16ExportMappers;

  public NlWasExportArtefaktNachSystemExportstatusExportMapperResolver() {
    super();
  }

  public Collection<NlWasModelIExportMapper> collectModelIExportMappers() {
    Collection<NlWasModelIExportMapper> result = new HashSet<>();
    modelIExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelIIExportMapper> collectModelIIExportMappers() {
    Collection<NlWasModelIIExportMapper> result = new HashSet<>();
    modelIIExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelE2ExportMapper> collectModelE2ExportMappers() {
    Collection<NlWasModelE2ExportMapper> result = new HashSet<>();
    modelE2ExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelN10ExportMapper> collectModelN10ExportMappers() {
    Collection<NlWasModelN10ExportMapper> result = new HashSet<>();
    modelN10ExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelN11ExportMapper> collectModelN11ExportMappers() {
    Collection<NlWasModelN11ExportMapper> result = new HashSet<>();
    modelN11ExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelO3ExportMapper> collectModelO3ExportMappers() {
    Collection<NlWasModelO3ExportMapper> result = new HashSet<>();
    modelO3ExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelP221ExportMapper> collectModelP221ExportMappers() {
    Collection<NlWasModelP221ExportMapper> result = new HashSet<>();
    modelP221ExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelP221BijlageExportMapper> collectModelP221BijlageExportMappers() {
    Collection<NlWasModelP221BijlageExportMapper> result = new HashSet<>();
    modelP221BijlageExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelP222ExportMapper> collectModelP222ExportMappers() {
    Collection<NlWasModelP222ExportMapper> result = new HashSet<>();
    modelP222ExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelP222BijlageExportMapper> collectModelP222BijlageExportMappers() {
    Collection<NlWasModelP222BijlageExportMapper> result = new HashSet<>();
    modelP222BijlageExportMappers.forEach(result::add);

    return result;
  }

  public Collection<NlWasModelU16ExportMapper> collectModelU16ExportMappers() {
    Collection<NlWasModelU16ExportMapper> result = new HashSet<>();
    modelU16ExportMappers.forEach(result::add);

    return result;
  }
}
