
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 abstract class AbstractStimmeingabeAnzahlComparedToTheoretischesMinimumByAnzahlNennungenProWahlvorschlagPlausiCustomData extends AbstractStimmeingabePlausiKonfigurationCustomData {

  private static final long serialVersionUID = 1L;

  protected AbstractStimmeingabeAnzahlComparedToTheoretischesMinimumByAnzahlNennungenProWahlvorschlagPlausiCustomData() {
    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 anzahlNennungenDummy = 998L;
    long anzahlStimmzettelNurEinzelnerWahlvorschlagUnveraendertDummy = 997L;
    long anzahlStimmzettelNurEinzelnerWahlvorschlagVeraendertDummy = 996L;

    String result = stimmeingabePlausiFormatter.formatFehlermeldungBeispiel(stimmeingabePlausiKonfiguration.getWahl(), stimmeingabePlausiKonfiguration.getErgebniseingangsart(),
        stimmeingabePlausiKonfiguration.getTyp(), stimmeingabePlausiKonfiguration.getFehlerart(), null, null, anzahlNennungenDummy, anzahlStimmzettelNurEinzelnerWahlvorschlagUnveraendertDummy,
        anzahlStimmzettelNurEinzelnerWahlvorschlagVeraendertDummy);

    // Dummy-Werte ersetzen...
    result = result.replace(String.valueOf(anzahlNennungenDummy), "x"); // Bspw. "998 Nennungen" -> "x Nennungen"
    result = result.replace(String.valueOf(anzahlStimmzettelNurEinzelnerWahlvorschlagUnveraendertDummy), "x"); // Bspw. "997 Stimmzettel für genau einen Wahlvorschlag unverändert" -> "x Stimmzettel für genau einen Wahlvorschlag unverändert"
    result = result.replace(String.valueOf(anzahlStimmzettelNurEinzelnerWahlvorschlagVeraendertDummy), "x"); // Bspw. "996 Stimmzettel für genau einen Wahlvorschlag mit Änderungen nur in diesem" -> "x Stimmzettel für genau einen Wahlvorschlag mit Änderungen nur in diesem"

    return result;
  }

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

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