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

import de.ivu.elect.business.wahl.entity.AbstractWahlParameterLoader;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlartErgebnisart;

public interface CustomListenwahlStimmeingabeKonfiguration {

  boolean isApplicable(Wahl wahl);

  boolean isErgebniseingangContainsStimmenKomplett(Wahl wahl, WahlartErgebnisart ergebnisart);

  boolean isErgebnismeldungEndgueltigKomplett(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart);

  boolean isErgebnismeldungVorlaeufigKomplett(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart);

  boolean isStimmzetteleingabeGruppeStimmenNurEinzelnerWahlvorschlagUnveraendertRelevant(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart);

  boolean isStimmzetteleingabeGruppeStimmenNurEinzelnerWahlvorschlagVeraendertRelevant(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart);

  boolean isStimmzetteleingabeGruppeStimmenNurEinzelnerWahlvorschlagPanaschiertRelevant(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart);

  boolean isStimmeingabeGruppeStimmenListenkandidaturenGesamtRelevant(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart);
}
