package de.ivu.elect.interfaces.core;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

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

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

  private static final long serialVersionUID = 1L;

  @XmlElement(required = true)
  private OrganisationseinheitReferenz organisationseinheitReferenz;

  @XmlElement(required = true)
  private Long anzahlSoll;

  @XmlElement(required = true)
  private String beschreibung;

  @XmlElement(required = false)
  private String kurzname;

  @XmlElement(required = true)
  private Anschrift anschrift = new Anschrift();

  @XmlElement(required = true)
  private Person ansprechpartner = new Person();

  @XmlElement(required = true)
  private String customData;

  @XmlElementWrapper(name = "aliasList", nillable = false, required = true)
  @XmlElement(required = false, name = "alias", nillable = true)
  private List<String> alias = new ArrayList<>();

  public OrganisationseinheitReferenz getOrganisationseinheitReferenz() {
    return organisationseinheitReferenz;
  }

  public void setOrganisationseinheitReferenz(OrganisationseinheitReferenz organisationseinheitReferenz) {
    this.organisationseinheitReferenz = organisationseinheitReferenz;
  }

  public Long getAnzahlSoll() {
    return anzahlSoll;
  }

  public void setAnzahlSoll(Long anzahlSoll) {
    this.anzahlSoll = anzahlSoll;
  }

  public String getBeschreibung() {
    return beschreibung;
  }

  public void setBeschreibung(String beschreibung) {
    this.beschreibung = beschreibung;
  }

  public String getKurzname() {
    return kurzname;
  }

  public void setKurzname(String kurzname) {
    this.kurzname = kurzname;
  }

  public Anschrift getAnschrift() {
    return anschrift;
  }

  public void setAnschrift(Anschrift anschrift) {
    this.anschrift = anschrift;
  }

  public Person getAnsprechpartner() {
    return ansprechpartner;
  }

  public void setAnsprechpartner(Person ansprechpartner) {
    this.ansprechpartner = ansprechpartner;
  }

  public String getCustomData() {
    return customData;
  }

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

  public List<String> getAlias() {
    return alias;
  }

  public void setAlias(List<String> alias) {
    this.alias = alias;
  }
}
