
package de.ivu.elect.dokumente.ergebnis;

import static org.apache.commons.lang3.StringUtils.trimToEmpty;

import de.ivu.document.generator.template.BaseDocument;
import de.ivu.document.generator.template.annotations.DocumentSimpleField;
import de.ivu.elect.business.gebietsbaum.boundary.WahlverwaltungGebietInformation;

public class ErgebnisDocumentGebietDocument extends BaseDocument {

  private static final long serialVersionUID = 1L;

  @DocumentSimpleField("Name")
  public String name;

  @DocumentSimpleField("Nummer")
  public String nummer;

  /**
   * Nummer in erwartetem Format, das je nach Wahlart/Gebietsart variiert, bspw. mit/ohne Kennung Bundesland im AGS.
   */
  @DocumentSimpleField("Nummer-Formatiert")
  public String nummerFormatiert;

  @DocumentSimpleField("Kuerzel")
  public String kuerzel;

  public ErgebnisDocumentGebietDocument() {
    this("", "", "", "");
  }

  public ErgebnisDocumentGebietDocument(WahlverwaltungGebietInformation gebietInformation) {
    this(gebietInformation.getName(), gebietInformation.getNummer(), gebietInformation.getNummer(), gebietInformation.getKuerzel());
  }

  public ErgebnisDocumentGebietDocument(String name, String nummer, String nummerFormatiert, String kuerzel) {
    super();

    this.name = trimToEmpty(name);
    this.nummer = trimToEmpty(nummer);
    this.nummerFormatiert = trimToEmpty(nummerFormatiert);
    this.kuerzel = trimToEmpty(kuerzel);
  }

  public ErgebnisDocumentGebietDocument copy() {
    return copy(new ErgebnisDocumentGebietDocument());
  }

  protected ErgebnisDocumentGebietDocument copy(ErgebnisDocumentGebietDocument target) {
    target.name = name;
    target.nummer = nummer;
    target.nummerFormatiert = nummerFormatiert;
    target.kuerzel = kuerzel;

    return target;
  }
}
