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

import java.util.List;

import de.ivu.elect.business.ergebnis.entity.Stimmenart;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeErfassenContext;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeErfassenModelBuilder;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabeKopfzahl;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabeKopfzahlErfassenModel;
import de.ivu.elect.business.wahl.entity.WahlartErgebnisart;

public interface StimmeingabeKopfzahlErfassenModelBuilder extends StimmeingabeErfassenModelBuilder {

  boolean isPruefkennzeichenWahlberechtigteCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWahlberechtigteStimmenartCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart, Stimmenart stimmenart);

  boolean isWahlberechtigteOhneWahlscheinCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWahlberechtigteMitWahlscheinCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWahlberechtigteNichtImWaehlerverzeichnisCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWahlberechtigteGesamtCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWaehlerStimmenartCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart, Stimmenart stimmenart);

  boolean isWaehlerOhneWahlscheinCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWaehlerMitWahlscheinCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWaehlerMitWahlscheinInUrnenwahlAnzahlAusUrnenwahlCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWaehlerMitWahlscheinInUrnenwahlAnzahlAusBriefwahlCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWaehlerMitVollmachtCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  boolean isWaehlerGesamtCreated(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, WahlartErgebnisart ergebnisart);

  StimmeingabeKopfzahlErfassenModel createKopfzahlErfassenModel(StimmeingabeErfassenContext context);

  List<StimmeingabeKopfzahl> layoutStimmeingabenKopfzahl(StimmeingabeKopfzahlErfassenModel model);
}
