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

import java.util.Collection;

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

// Cf. GueltigeStimmenAnzahlGleichGruppeStimmenAnzahlenSummePlausi!
// Cf. DdKommunalwahlGueltigeListenstimmenAnzahlGleichListenkandidaturListenstimmenAnzahlenSummePlausi!
public class ReferendumVorlageStimmenGueltigeZwischensummeGleichOptionStimmenAnzahlenSummePlausi extends AbstractStimmeingabeAnzahlComparedToStimmeingabeAnzahlenSummePlausi {

  public ReferendumVorlageStimmenGueltigeZwischensummeGleichOptionStimmenAnzahlenSummePlausi(Collection<Stimmeingabe> stimmeingabenReferendumOptionStimmen,
      StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(new StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(StimmeingabeAnzahlReference.REFERENDUM_VORLAGE_REFERENDUM_STIMMEN_ZWISCHENSUMME_GUELTIGE,
        StimmeingabeAnzahlComparedToOperator.EQUAL_TO, StimmeingabeAnzahlReference.GRUPPE_REFERENDUM_STIMMEN), stimmeingabenReferendumOptionStimmen, stimmeingabePlausiKonfiguration, messages);
  }

  @Override
  protected StimmeingabePlausiFiktiveWerteFehlerBeheber getFiktiveWerteFehlerBeheber() {
    // Alternative: EinenWertErgaenzenderSummenFehlerBeheber
    return new SummenRueckwaertsKorrigierenderFehlerBeheber(getComparedToStimmeingaben());
  }
}
