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

import java.util.Collection;

import javax.inject.Inject;

import de.ivu.elect.business.dokumente.control.ElectDokumentContext;
import de.ivu.elect.business.ergebnis.boundary.ErgebnisSessionSelect;
import de.ivu.elect.business.ergebnis.control.NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext;
import de.ivu.elect.business.ergebnis.entity.Ergebnis;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.wahl.entity.AbstractWahlParameterLoader;
import de.ivu.elect.presentation.wahl.exchange.AbstractNlExportArtefaktNachSystemExportstatusBulkExportView;

public abstract class AbstractNlWasErgebnisArtefaktNachGebietErgebniseingabestatusBulkExportView extends AbstractNlExportArtefaktNachSystemExportstatusBulkExportView {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient ErgebnisSessionSelect ergebnisSessionSelect;

  protected AbstractNlWasErgebnisArtefaktNachGebietErgebniseingabestatusBulkExportView() {
    super();
  }

  @Override
  public void preRenderView() {
    // TODO Ggf. Hinweise, zum Status der Gebiete, etc. ...
  }

  @Override
  protected NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext createContext(ElectDokumentContext electDokumentContext, AbstractWahlParameterLoader wahlParameterLoader,
      Collection<Gebiet> gebieteInWahl) {
    return createContext(electDokumentContext, wahlParameterLoader, gebieteInWahl, ergebnisSessionSelect.getEntity());
  }

  protected NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext createContext(ElectDokumentContext electDokumentContext, AbstractWahlParameterLoader wahlParameterLoader,
      Collection<Gebiet> gebieteInWahl, Ergebnis ergebnis) {
    return new NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext(electDokumentContext, wahlParameterLoader, gebieteInWahl, ergebnis);
  }
}
