
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;

// Summe abweichend erfasste Stimmzettel > 0 -> Anzahl Eingenommene Stimmzettel != Anzahl zugelassene Wähler
public class NlStimmzettelEingenommenGesamtAnzahlUngleichWaehlerGesamtAnzahlPlausi extends AbstractNlStimmzettelEingenommenGesamtAnzahlComparedToWaehlerGesamtAnzahlPlausi {

  public NlStimmzettelEingenommenGesamtAnzahlUngleichWaehlerGesamtAnzahlPlausi(Collection<Stimmeingabe> stimmeingabenWaehlerGesamt,
      Stimmeingabe stimmzetteleingabeStimmzettelEingenommenAbweichendZuwenig, Stimmeingabe stimmzetteleingabeStimmzettelEingenommenAbweichendZuviel,
      Collection<Stimmeingabe> stimmzetteleingabenStimmzettelEingenommenAbweichendGrund, StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(StimmeingabeAnzahlComparedToOperator.LESS_THAN_OR_GREATER_THAN, stimmeingabenWaehlerGesamt, stimmzetteleingabeStimmzettelEingenommenAbweichendZuwenig,
        stimmzetteleingabeStimmzettelEingenommenAbweichendZuviel, stimmzetteleingabenStimmzettelEingenommenAbweichendGrund, stimmeingabePlausiKonfiguration, messages);
  }

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