
package de.ivu.elect.dokumente;

import java.io.Serializable;

import javax.annotation.Nullable;

import de.ivu.document.generator.template.annotations.DocumentMethod;
import de.ivu.document.generator.template.annotations.DocumentParam;
import de.ivu.elect.business.system.entity.SystemGebietsebene;
import de.ivu.elect.exchange.dokumente.DokumentPlatzhalterFormatter;

public class CustomParameterDokumentFormatter implements Serializable {

  private static final long serialVersionUID = 1L;

  private final DokumentPlatzhalterFormatter dokumentPlatzhalterFormatter;

  public CustomParameterDokumentFormatter(@Nullable CustomParameterDokument customParameterDokument) {
    super();

    SystemGebietsebene systemGebietsebene = SystemGebietsebene.UNBEKANNT;

    String wahlbezeichnungLang = "";
    String wahlbezeichnungKurz = "";

    String zuWaehlendesGremium = "";

    if (customParameterDokument != null) {
      systemGebietsebene = customParameterDokument.getSystemGebietsebene();

      wahlbezeichnungLang = customParameterDokument.wahlbezeichnung;
      wahlbezeichnungKurz = customParameterDokument.wahlbezeichnungKurz;

      zuWaehlendesGremium = customParameterDokument.zuWaehlendesGremium;
    }

    this.dokumentPlatzhalterFormatter = new DokumentPlatzhalterFormatter(systemGebietsebene, wahlbezeichnungLang, wahlbezeichnungKurz, zuWaehlendesGremium);
  }

  @DocumentMethod
  public String formatWahlbezeichnungImGebiet(@Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return formatWahlbezeichnungLangImGebiet(gebietName);
  }

  @DocumentMethod
  public String formatWahlbezeichnungImGebiet(@Nullable @DocumentParam("\"wahlbezeichnungDefault\"") String wahlbezeichnungDefault, @Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return formatWahlbezeichnungLangImGebiet(wahlbezeichnungDefault, gebietName);
  }

  @DocumentMethod
  public String formatWahlbezeichnungImGebietWahlart(@Nullable @DocumentParam("\"wahlbezeichnungDefault\"") String wahlbezeichnungDefault) {
    return formatWahlbezeichnungLangImGebietWahlart(wahlbezeichnungDefault);
  }

  @DocumentMethod
  public String formatWahlbezeichnungLangImGebiet(@Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungLangImGebiet(gebietName);
  }

  @DocumentMethod
  public String formatWahlbezeichnungLangImGebiet(@Nullable @DocumentParam("\"wahlbezeichnungDefault\"") String wahlbezeichnungDefault, @Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungLangImGebiet(wahlbezeichnungDefault, gebietName);
  }

  @DocumentMethod
  public String formatWahlbezeichnungLangImGebietWahlart(@Nullable @DocumentParam("\"wahlbezeichnungDefault\"") String wahlbezeichnungDefault) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungLangImGebietWahlart(wahlbezeichnungDefault);
  }

  @DocumentMethod
  public String formatWahlbezeichnungKurzImGebiet(@Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungKurzImGebiet(gebietName);
  }

  @DocumentMethod
  public String formatWahlbezeichnungKurzImGebiet(@Nullable @DocumentParam("\"wahlbezeichnungDefault\"") String wahlbezeichnungDefault, @Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungKurzImGebiet(wahlbezeichnungDefault, gebietName);
  }

  @DocumentMethod
  public String formatWahlbezeichnungKurzImGebietWahlart(@Nullable @DocumentParam("\"wahlbezeichnungDefault\"") String wahlbezeichnungDefault) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungKurzImGebietWahlart(wahlbezeichnungDefault);
  }

  @DocumentMethod
  public String formatWahlbezeichnungImGebietGebietsebene(@Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatWahlbezeichnungImGebietGebietsebene(gebietName);
  }

  @DocumentMethod
  public String formatZuWaehlendesGremiumImGebiet(@Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatZuWaehlendesGremiumImGebiet(gebietName);
  }

  @DocumentMethod
  public String formatZuWaehlendesGremiumImGebiet(@Nullable @DocumentParam("\"zuWaehlendesGremiumDefault\"") String zuWaehlendesGremiumDefault,
      @Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatZuWaehlendesGremiumImGebiet(zuWaehlendesGremiumDefault, gebietName);
  }

  @DocumentMethod
  public String formatZuWaehlendesGremiumImGebietGremium(@Nullable @DocumentParam("\"zuWaehlendesGremiumDefault\"") String zuWaehlendesGremiumDefault) {
    return dokumentPlatzhalterFormatter.formatZuWaehlendesGremiumImGebietGremium(zuWaehlendesGremiumDefault);
  }

  @DocumentMethod
  public String formatZuWaehlendesGremiumImGebietGebietsebene(@Nullable @DocumentParam("\"gebietName\"") String gebietName) {
    return dokumentPlatzhalterFormatter.formatZuWaehlendesGremiumImGebietGebietsebene(gebietName);
  }
}
