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

import static java.util.Arrays.asList;

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

// ELECT-13269
public class WaehlerMitWahlscheinAnzahlGleichWaehlerMitWahlscheinAnzahlenSummePlausi extends AbstractStimmeingabeAnzahlComparedToStimmeingabeAnzahlenSummePlausi {

  public WaehlerMitWahlscheinAnzahlGleichWaehlerMitWahlscheinAnzahlenSummePlausi(Stimmeingabe stimmeingabeWaehlerMitWahlscheinInUrnenwahlAnzahlAusUrnenwahl,
      Stimmeingabe stimmeingabeWaehlerMitWahlscheinInUrnenwahlAnzahlAusBriefwahl, StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(
        new StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_MIT_WAHLSCHEIN, StimmeingabeAnzahlComparedToOperator.EQUAL_TO,
            StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_MIT_WAHLSCHEIN_ANTEIL_AUS_URNENWAHL, StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_MIT_WAHLSCHEIN_ANTEIL_AUS_BRIEFWAHL,
            StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_MIT_VOLLMACHT),
        asList(stimmeingabeWaehlerMitWahlscheinInUrnenwahlAnzahlAusUrnenwahl, stimmeingabeWaehlerMitWahlscheinInUrnenwahlAnzahlAusBriefwahl), stimmeingabePlausiKonfiguration, messages);
  }

  @Override
  protected StimmeingabePlausiFiktiveWerteFehlerBeheber getFiktiveWerteFehlerBeheber() {
    return new SummenRueckwaertsKorrigierenderFehlerBeheber(getComparedToStimmeingaben());
  }
}
