
package de.ivu.elect.business.stimmeingabe.control.plausi;

import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfiguration;

public class GueltigeStimmenAnzahlBerechnetByAnzahlStimmenProWaehlerComparedToTheoretischesMaximumByAnzahlStimmenProWaehlerAnteilPlausiCustomData
    extends
      AbstractStimmeingabeAnzahlComparedToAnzahlAnteilPlausiKonfigurationCustomData {

  private static final long serialVersionUID = 1L;

  public GueltigeStimmenAnzahlBerechnetByAnzahlStimmenProWaehlerComparedToTheoretischesMaximumByAnzahlStimmenProWaehlerAnteilPlausiCustomData() {
    this(null);
  }

  public GueltigeStimmenAnzahlBerechnetByAnzahlStimmenProWaehlerComparedToTheoretischesMaximumByAnzahlStimmenProWaehlerAnteilPlausiCustomData(Double anteil) {
    super(anteil);
  }

  public Long getAnzahlStimmenProWaehlerMaximalOrDefault(Long defaultValue) {
    return zeroIfNotPositive(defaultValue);
  }

  @Override
  public String formatFehlermeldungBeispiel(StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, StimmeingabePlausiFormatter stimmeingabePlausiFormatter) {
    Long anzahlStimmenProWaehlerMaximalDummy = 998L;

    String result = stimmeingabePlausiFormatter.formatFehlermeldungBeispiel(stimmeingabePlausiKonfiguration.getWahl(), stimmeingabePlausiKonfiguration.getErgebniseingangsart(),
        stimmeingabePlausiKonfiguration.getTyp(), stimmeingabePlausiKonfiguration.getFehlerart(), null, getAnteil(), getAnzahlStimmenProWaehlerMaximalOrDefault(anzahlStimmenProWaehlerMaximalDummy));

    // Dummy-Werte ersetzen...
    result = result.replace(String.valueOf(anzahlStimmenProWaehlerMaximalDummy), "x"); // Bspw. "998-fache" -> "x-fache"

    return result;
  }
}
