
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;

public class WaehlerMitWahlscheinAnzahlKleinerWahlberechtigteMitWahlscheinAnzahlPlusWahlberechtigteNichtImWaehlerverzeichnisAnzahlPlausi
    extends
      AbstractStimmeingabeAnzahlComparedToStimmeingabeAnzahlenSummePlausi {

  public WaehlerMitWahlscheinAnzahlKleinerWahlberechtigteMitWahlscheinAnzahlPlusWahlberechtigteNichtImWaehlerverzeichnisAnzahlPlausi(Stimmeingabe stimmeingabeWahlberechtigteMitWahlschein,
      Stimmeingabe stimmeingabeWahlberechtigteNichtImWaehlerverzeichnis, StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(
        new StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAEHLER_MIT_WAHLSCHEIN, StimmeingabeAnzahlComparedToOperator.LESS_THAN,
            StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAHLBERECHTIGTE_MIT_WAHLSCHEIN, StimmeingabeAnzahlReference.SYSTEM_GRUPPE_WAHLBERECHTIGTE_NICHT_IM_WAEHLERVERZEICHNIS),
        asList(stimmeingabeWahlberechtigteMitWahlschein, stimmeingabeWahlberechtigteNichtImWaehlerverzeichnis), stimmeingabePlausiKonfiguration, messages);
  }

  @Override
  protected boolean isPlausibilisierenZulaessig(Stimmeingabe stimmeingabe) {
    return super.isPlausibilisierenZulaessig(stimmeingabe) && stimmeingabe.hasAnzahlGroesserNull(); // ELECTKOM-235
  }
}
