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

import de.ivu.elect.business.stimmeingabe.entity.Stimmeingabe;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfiguration;
import de.ivu.elect.jee.faces.Messages;

public class KommunalListenwahlWaehlerGesamtAnzahlKleinerGleichTheoretischesMaximumPlausi extends AbstractWaehlerGesamtAnzahlComparedToTheoretischeAnzahlPlausi
    implements
      StimmeingabePlausiAnzahlComparedToTheoretischesMaximum {

  public KommunalListenwahlWaehlerGesamtAnzahlKleinerGleichTheoretischesMaximumPlausi(Long anzahlStimmenProWaehlerMaximal, Long anzahlNennungenAufListeMinimal, Long anzahlNennungenAufListeMaximal,
      Stimmeingabe stimmzetteleingabeUngueltigeListenstimmen, KommunalListenwahlStimmeingabenGueltigeListenstimmen stimmeingabenGueltigeListenstimmen,
      StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(anzahlStimmenProWaehlerMaximal, anzahlNennungenAufListeMinimal, anzahlNennungenAufListeMaximal, StimmeingabeAnzahlComparedToOperator.LESS_THAN_OR_EQUAL_TO,
        stimmzetteleingabeUngueltigeListenstimmen, stimmeingabenGueltigeListenstimmen, stimmeingabePlausiKonfiguration, messages);
  }

  @Override
  protected boolean isPlausibilisierenZulaessig(Stimmeingabe stimmeingabe) {
    return super.isPlausibilisierenZulaessig(stimmeingabe) && isErgebnismeldungKomplett();
  }

  @Override
  protected long getAnzahlStimmzettelBerechnetWahlvorschlagVeraendert() {
    return getAnzahlStimmenErfasstWahlvorschlagVeraendertMaximal(); // Auf jedem veränderten Stimmzettel nur eine Stimme -> maximale Anzahl der veränderten Stimmzettel!
  }
}
