
package de.ivu.elect.business.ergebnis.boundary;

import de.ivu.elect.presentation.dokumente.exchange.DokumentBulkExportSearchEntryTemplate;

public enum DefaultErgebnisdokumentTyp implements ErgebnisdokumentTyp, DokumentBulkExportSearchEntryTemplate {

  // Pro Wahlbezirk/Briefwahlbezirk
  ERGEBNIS_ERSTE_SCHNELLMELDUNG("Erste Schnellmeldung", "ergebnis-erste-schnellmeldung", "Erfassung - Erste Schnellmeldung"),

  // Pro Wahlbezirk/Briefwahlbezirk
  ERGEBNIS_WAHLNIEDERSCHRIFT("Wahlniederschrift", "ergebnis-wahlniederschrift", "Erfassung - Wahlniederschrift"),

  // Pro Wahlkreis/Stimmkreis/Kreis
  ERGEBNIS_KANDIDATUREN("Kandidaturergebnis", "ergebnis-kandidaturen", "Erfassung - Kandidaturergebnis"),

  // Pro Wahlkreis/Stimmkreis/Kreis
  ERGEBNIS_GESAMTERGEBNIS("Gesamtergebnis", "ergebnis-gesamtergebnis", "Erfassung - Gesamtergebnis"),

  ERGEBNIS_ZAEHLLISTE("Zählliste", "ergebnis-zaehlliste", "Erfassung - Zählliste"),

  BEKANNTMACHUNG_WAHLERGEBNIS("Bekanntmachung Wahlergebnis", "bekanntmachung-wahlergebnis", "Bekanntmachung - Wahlergebnis"),

  WAHLAUSSCHUSS_NIEDERSCHRIFT("Wahlausschuss Niederschrift", "wahlausschuss-niederschrift", "Wahlausschuss - Niederschrift"),

  ;

  private final String kuerzel;

  private final String bezeichnung;

  private final String beschreibung;

  DefaultErgebnisdokumentTyp(String bezeichnung, String kuerzel, String beschreibung) {
    this.kuerzel = kuerzel;

    this.bezeichnung = bezeichnung;
    this.beschreibung = beschreibung;
  }

  @Override
  public String getDefaultKuerzel() {
    return kuerzel;
  }

  @Override
  public String getDefaultBezeichnung() {
    return bezeichnung;
  }

  @Override
  public String getDefaultBeschreibung() {
    return beschreibung;
  }

  @Override
  public boolean isErgebnisErsteSchnellmeldung() {
    return ERGEBNIS_ERSTE_SCHNELLMELDUNG.equals(this);
  }

  @Override
  public boolean isErgebnisWahlniederschrift() {
    return ERGEBNIS_WAHLNIEDERSCHRIFT.equals(this);
  }

  @Override
  public boolean isErgebnisKandidaturen() {
    return ERGEBNIS_KANDIDATUREN.equals(this);
  }

  @Override
  public boolean isErgebnisGesamtergebnis() {
    return ERGEBNIS_GESAMTERGEBNIS.equals(this);
  }
}
