
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;

// Cf. https://confluence.ivu.de/display/ELECTMUC/Wahl-Glossar#Wahl-Glossar-SonderwahlbezirkSonderwahlbezirk!
public class SonderstimmbezirkWaehlerMitWahlscheinAnzahlGleichWaehlerGesamtAnzahlPlausi extends AbstractStimmeingabeAnzahlComparedToStimmeingabeAnzahlenSummePlausi
    implements
      StimmeingabePlausiFiktiveWerteFehlerBeheber {

  protected SonderstimmbezirkWaehlerMitWahlscheinAnzahlGleichWaehlerGesamtAnzahlPlausi(Stimmeingabe stimmeingabeWaehlerGesamt, StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration,
      Messages messages) {
    super(new StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_MIT_WAHLSCHEIN, StimmeingabeAnzahlComparedToOperator.EQUAL_TO,
        StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_GESAMT), stimmeingabeWaehlerGesamt, stimmeingabePlausiKonfiguration, messages);
  }

  @Override
  public void behebeFehler(Stimmeingabe stimmeingabe) throws StimmeingabePlausiFiktiveWerteFehlerNichtBehebbarException {
    stimmeingabe.setAnzahl(calculateComparedToValue().longValue());
  }
}
