package de.ivu.elect.interfaces.wes;

import java.io.Serializable;
import java.util.Date;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;

import org.apache.commons.lang3.StringUtils;

@XmlAccessorType(XmlAccessType.FIELD)
public class Stimmzettel implements Serializable {

  @XmlElement(required = true)
  private String nummer;

  @XmlElement(required = false)
  private String stimmzettelTeam;

  @XmlElement(required = false)
  private String erfasser;

  @XmlElement(required = false)
  private Date erfassungszeitpunkt;

  @XmlElement(required = false)
  private String gueltigkeit;

  @XmlElement(required = false)
  private String status;

  @XmlElement(required = false)
  private String stimmzettelDaten;

  @XmlElement(required = false)
  private String bemerkung;

  @XmlElement(required = true)
  private Long versionsnummer;

  public String getNummer() {
    return nummer;
  }

  public void setNummer(String nummer) {
    this.nummer = nummer;
  }

  public String getStimmzettelTeam() {
    return stimmzettelTeam;
  }

  public void setStimmzettelTeam(String stimmzettelTeam) {
    this.stimmzettelTeam = stimmzettelTeam;
  }

  public String getErfasser() {
    return erfasser;
  }

  public void setErfasser(String erfasser) {
    this.erfasser = erfasser;
  }

  public Date getErfassungszeitpunkt() {
    return erfassungszeitpunkt;
  }

  public void setErfassungszeitpunkt(Date erfassungszeitpunkt) {
    this.erfassungszeitpunkt = erfassungszeitpunkt;
  }

  public String getGueltigkeit() {
    return gueltigkeit;
  }

  public void setGueltigkeit(String gueltigkeit) {
    this.gueltigkeit = gueltigkeit;
  }

  public String getStatus() {
    return status;
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public String getStimmzettelDaten() {
    return stimmzettelDaten;
  }

  public void setStimmzettelDaten(String stimmzettelDaten) {
    this.stimmzettelDaten = stimmzettelDaten;
  }

  public String getBemerkung() {
    return bemerkung;
  }

  public void setBemerkung(String bemerkung) {
    this.bemerkung = bemerkung;
  }

  public Long getVersionsnummer() {
    return versionsnummer;
  }

  public void setVersionsnummer(Long versionsnummer) {
    this.versionsnummer = versionsnummer;
  }

  public void appendZuSignierendeDaten(StringBuilder sb) {
    if (StringUtils.isNotBlank(nummer)) {
      sb.append(nummer);
    }
    if (StringUtils.isNotBlank(stimmzettelTeam)) {
      sb.append(stimmzettelTeam);
    }
    if (StringUtils.isNotBlank(erfasser)) {
      sb.append(erfasser);
    }
    if (StringUtils.isNotBlank(gueltigkeit)) {
      sb.append(gueltigkeit);
    }
    if (StringUtils.isNotBlank(status)) {
      sb.append(status);
    }
    if (StringUtils.isNotBlank(stimmzettelDaten)) {
      sb.append(stimmzettelDaten);
    }
    if (StringUtils.isNotBlank(bemerkung)) {
      sb.append(bemerkung);
    }
    if (versionsnummer != null) {
      sb.append(versionsnummer);
    }

  }
}
