
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;

/**
 * Testet, ob die Anzahl der "Gesamtstimmenzahl" auf der untergeordneten Erfassungsmaske für Listenkandidaturen eines Wahlvorschlages mit der Anzahl der "Gültige kumulierte und panaschierte Stimmen
 * insgesamt" auf der übergeordneten Erfassungsmaske für Wahlvorschläge übereinstimmt.
 */
public class KommunalListenwahlGruppeListenkandidaturenGesamtZwischensummeGleichListenkandidaturListenstimmenGesamtZwischensummePlausi extends AbstractStimmeingabeAnzahlComparedToStimmeingabeAnzahlenSummePlausi
    implements
      StimmeingabePlausiFiktiveWerteFehlerBeheber {

  private final Stimmeingabe stimmeingabeGruppeListenkandidaturenGesamt;

  public KommunalListenwahlGruppeListenkandidaturenGesamtZwischensummeGleichListenkandidaturListenstimmenGesamtZwischensummePlausi(Stimmeingabe stimmeingabeGruppeListenkandidaturenGesamt,
      StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(
        new StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(StimmeingabeAnzahlReference.GRUPPE_LISTENSTIMMEN_ZWISCHENSUMME_LISTENKANDIDATUREN_GESAMT,
            StimmeingabeAnzahlComparedToOperator.EQUAL_TO, StimmeingabeAnzahlReference.LISTENKANDIDATUR_LISTENSTIMMEN_ZWISCHENSUMME_GESAMT),
        stimmeingabeGruppeListenkandidaturenGesamt, stimmeingabePlausiKonfiguration, messages);

    this.stimmeingabeGruppeListenkandidaturenGesamt = stimmeingabeGruppeListenkandidaturenGesamt;
  }

  @Override
  public void behebeFehler(Stimmeingabe stimmeingabe) {
    stimmeingabeGruppeListenkandidaturenGesamt.setAnzahlEingabe(stimmeingabe.getAnzahlEingabe());
  }
}
