package de.ivu.elect.interfaces.wes;

import java.io.Serializable;

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

import org.apache.commons.lang3.StringUtils;

import de.ivu.elect.interfaces.core.GruppeReferenz;

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

  @XmlElement(required = true)
  private String schluessel;

  @XmlElement(required = false)
  private String wert;

  @XmlElement(required = false, namespace = "http://www.ivu.de/ELECT")
  private GruppeReferenz gruppeReferenz;

  @XmlElement(required = false)
  private String customData;

  public String getSchluessel() {
    return schluessel;
  }

  public void setSchluessel(String schluessel) {
    this.schluessel = schluessel;
  }

  public String getWert() {
    return wert;
  }

  public void setWert(String wert) {
    this.wert = wert;
  }

  public GruppeReferenz getGruppeReferenz() {
    return gruppeReferenz;
  }

  public void setGruppeReferenz(GruppeReferenz gruppeReferenz) {
    this.gruppeReferenz = gruppeReferenz;
  }

  public String getCustomData() {
    return customData;
  }

  public void setCustomData(String customData) {
    this.customData = customData;
  }

  public void appendZuSignierendeDaten(StringBuilder sb) {
    if (StringUtils.isNotBlank(schluessel)) {
      sb.append(schluessel);
    }
    if (StringUtils.isNotBlank(wert)) {
      sb.append(wert);
    }
    if (gruppeReferenz != null && StringUtils.isNotBlank(gruppeReferenz.getSchluessel())) {
      sb.append(gruppeReferenz.getSchluessel());
    }
    if (StringUtils.isNotBlank(customData)) {
      sb.append(customData);
    }
  }
}
