
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 UngueltigeStimmenAnzahlKleinerGleichGueltigeStimmenAnzahlAnteilPlausi extends AbstractStimmeingabeAnzahlComparedToStimmeingabeAnzahlenSummeAnteilPlausi
    implements
      StimmeingabePlausiAnzahlComparedToValueAnteil {

  public UngueltigeStimmenAnzahlKleinerGleichGueltigeStimmenAnzahlAnteilPlausi(Stimmeingabe stimmeingabeGueltigeStimmen, StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration,
      Messages messages) {
    super(
        new StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(findStimmeingabeUngueltigeStimmenReference(stimmeingabePlausiKonfiguration),
            StimmeingabeAnzahlComparedToOperator.LESS_THAN_OR_EQUAL_TO, findStimmeingabeGueltigeStimmenReference(stimmeingabePlausiKonfiguration)),
        stimmeingabeGueltigeStimmen, stimmeingabePlausiKonfiguration, messages);
  }

  private static StimmeingabeAnzahlReference findStimmeingabeUngueltigeStimmenReference(StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration) {
    return StimmeingabePlausiNachStimmenart.findStimmeingabeUngueltigeStimmenReference(stimmeingabePlausiKonfiguration.getTyp());
  }

  private static StimmeingabeAnzahlReference findStimmeingabeGueltigeStimmenReference(StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration) {
    return StimmeingabePlausiNachStimmenart.findStimmeingabeGueltigeStimmenReference(stimmeingabePlausiKonfiguration.getTyp());
  }
}
