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

import static java.util.Collections.emptyMap;

import java.util.List;
import java.util.Map;

import de.ivu.elect.business.stimmeingabe.entity.AbstractStimmeingabePlausiKonfigurationCustomData;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfiguration;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfigurationCustomData;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfigurationCustomDataKategorie;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiKonfigurationPropertyContext;
import de.ivu.elect.jee.presentation.dynamicform.Property;

public class WaehlerGesamtAnzahlComparedToTheoretischesMinimumByGueltigeStimmenAnzahlPlusUngueltigeStimmenAnzahlPlausiCustomData extends AbstractStimmeingabePlausiKonfigurationCustomData {

  private static final long serialVersionUID = 1L;

  public WaehlerGesamtAnzahlComparedToTheoretischesMinimumByGueltigeStimmenAnzahlPlusUngueltigeStimmenAnzahlPlausiCustomData() {
    super();
  }

  @Override
  public Map<StimmeingabePlausiKonfigurationCustomDataKategorie, List<Object>> getParameters() {
    return emptyMap();
  }

  @Override
  public Map<StimmeingabePlausiKonfigurationCustomDataKategorie, List<Property>> getProperties(StimmeingabePlausiKonfigurationPropertyContext context) {
    return emptyMap();
  }

  @Override
  public String formatFehlermeldungBeispiel(StimmeingabePlausiKonfiguration stimmeingabePlausiKonfiguration, StimmeingabePlausiFormatter stimmeingabePlausiFormatter) {
    long anzahlStimmenGueltigDummy = 998L;
    long anzahlStimmenUngueltigDummy = 997L;

    String result = stimmeingabePlausiFormatter.formatFehlermeldungBeispiel(stimmeingabePlausiKonfiguration.getWahl(), stimmeingabePlausiKonfiguration.getErgebniseingangsart(),
        stimmeingabePlausiKonfiguration.getTyp(), stimmeingabePlausiKonfiguration.getFehlerart(), null, null, anzahlStimmenGueltigDummy, anzahlStimmenUngueltigDummy);

    // Dummy-Werte ersetzen...
    result = result.replace(String.valueOf(anzahlStimmenGueltigDummy), "x"); // Bspw. "998 gültige Stimmen" -> "x gültige Stimmen"
    result = result.replace(String.valueOf(anzahlStimmenUngueltigDummy), "x"); // Bspw. "997 ungültige Stimmen" -> "x ungültige Stimmen"

    return result;
  }

  @Override
  public boolean isCustomDataDefaultOverridden(StimmeingabePlausiKonfigurationCustomData customDataDefault) {
    return false;
  }

  @Override
  public void resetToDefault(StimmeingabePlausiKonfigurationCustomData customDataDefault) {
    // nichts zu tun
  }
}
