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

public interface KommunalListenwahlStimmeingabenGueltigeListenstimmen {

  boolean isErgebnismeldungKomplett();

  boolean isStimmzettelNurEinzelnerWahlvorschlagUnveraendertManuellAuszuzaehlen();

  long getAnzahlStimmzettelNurEinzelnerWahlvorschlag();

  long getAnzahlStimmzettelNurEinzelnerWahlvorschlagUnveraendert();

  long getAnzahlStimmzettelNurEinzelnerWahlvorschlagVeraendert();

  /**
   * @return Anzahl der ausgezählten/maximal auszählbaren gültigen Stimmen für Wahlvorschläge INKLUSIVE der Auswertung der "Stimmzettel für genau einen Wahlvorschlag unverändert", deren Stimmen ggf.
   *         automatisch, wie bei MUC, zu dieser Anzahl hinzugerechnet werden...
   */
  long getAnzahlStimmenAusgezaehltOderAuszaehlbarMaximal(long anzahlNennungenAufListe);

  /**
   * @return Anzahl der tatsächlich erfassten "Gültige kumulierte und panaschierte Stimmen insgesamt" für Wahlvorschläge OHNE eine Auswertung der "Stimmzettel für genau einen Wahlvorschlag
   *         unverändert", deren Stimmen ggf. automatisch, wie bei MUC, zu dieser Anzahl als "Ausgezählte gültige Stimmen" hinzugerechnet werden...
   */
  long getAnzahlStimmenErfasst();

  long getAnzahlStimmenErfasstIncludingStimmzettelNurEinzelnerWahlvorschlagUnveraendert(long anzahlNennungenAufListe);

  long getAnzahlStimmenErfasstExcludingStimmzettelNurEinzelnerWahlvorschlagUnveraendert(long anzahlNennungenAufListe);
}
