
package de.ivu.elect.business.ergebnis.boundary;

import static java.util.Arrays.stream;
import static java.util.stream.Collectors.toSet;

import java.util.Collection;

import javax.ejb.Stateless;
import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.control.NlWasModelP2aBulkExportExchange;
import de.ivu.elect.business.exchange.control.ExportExchange;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingabestatus;
import de.ivu.elect.business.wahl.boundary.AbstractNlExportArtefaktNachSystemExportstatusBulkExporter;
import de.ivu.elect.business.wahl.control.AbstractNlExportArtefaktNachSystemExportstatusExportContext;
import de.ivu.elect.business.wahl.control.NlExportArtefaktNachSystemExportstatusExportObject;

@Stateless
public class NlWasModelP2aBulkExporter extends AbstractNlExportArtefaktNachSystemExportstatusBulkExporter {

  public static final Collection<Ergebniseingabestatus> EXPORT_ERGEBNISEINGABESTATUS = stream(Ergebniseingabestatus.values()).filter(Ergebniseingabestatus::isEingabeBeendet).collect(toSet());

  @Inject
  private transient NlWasModelP2aBulkExportExchange exportExchange;

  public NlWasModelP2aBulkExporter() {
    super();
  }

  @Override
  public ExportExchange<NlExportArtefaktNachSystemExportstatusExportObject, AbstractNlExportArtefaktNachSystemExportstatusExportContext> getExchange() {
    return exportExchange;
  }
}
