
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;

public class KommunalListenwahlGueltigeListenstimmenBerechnetAnzahlKleinerGleichTheoretischesMaximumPlausi extends AbstractKommunalListenwahlGueltigeListenstimmenBerechnetAnzahlComparedToTheoretischesMaximumPlausi {

  private final long anzahlStimmenProWaehlerMaximal;

  public KommunalListenwahlGueltigeListenstimmenBerechnetAnzahlKleinerGleichTheoretischesMaximumPlausi(Long anzahlStimmenProWaehlerMaximal, Stimmeingabe stimmeingabeWaehlerGesamt,
      Stimmeingabe stimmzetteleingabeUngueltigeListenstimmen, KommunalListenwahlStimmeingabenGueltigeListenstimmen stimmeingabenGueltigeListenstimmen,
      StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, Messages messages) {
    super(StimmeingabeAnzahlComparedToOperator.LESS_THAN_OR_EQUAL_TO, stimmeingabeWaehlerGesamt, stimmzetteleingabeUngueltigeListenstimmen, stimmeingabenGueltigeListenstimmen,
        stimmeingabePlausiKonfiguration, messages);

    GueltigeStimmenAnzahlBerechnetByAnzahlStimmenProWaehlerComparedToTheoretischesMaximumByAnzahlStimmenProWaehlerPlausiCustomData stimmeingabePlausiKonfigurationCustomData = stimmeingabePlausiKonfiguration
        .getCustomData(GueltigeStimmenAnzahlBerechnetByAnzahlStimmenProWaehlerComparedToTheoretischesMaximumByAnzahlStimmenProWaehlerPlausiCustomData.class);

    this.anzahlStimmenProWaehlerMaximal = stimmeingabePlausiKonfigurationCustomData.getAnzahlStimmenProWaehlerMaximalOrDefault(anzahlStimmenProWaehlerMaximal);
  }

  @Override
  protected long getAnzahlStimmenProWaehlerMaximal() {
    return anzahlStimmenProWaehlerMaximal;
  }
}
