
package de.ivu.elect.interfaces.was.stimmeingabe;

import java.util.ArrayList;
import java.util.Date;
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;

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

@XmlAccessorType(XmlAccessType.FIELD)
public class Ergebniseingang {

  @XmlElement(required = true)
  private Long eingangssequenznummer;

  @XmlElement(required = true)
  private Date zeitstempel;

  @XmlElement(required = true)
  private Ergebniseingangsart ergebniseingangsart;

  @XmlElement(required = true)
  private Ergebniseingangsherkunft ergebniseingangsherkunft;

  @XmlElement(required = true)
  private String erfasser;

  @XmlElement(required = false)
  private Ergebniseingabestufe ergebniseingabestufe = Ergebniseingabestufe.ENDSTUFE; // ELECT-9287

  @XmlElement(required = true)
  private Ergebniseingangsfehlerstatus ergebniseingangsfehlerstatus;

  @XmlElement(required = true)
  private GebietReferenz gebiet;

  @XmlElementWrapper(name = "stimmeingaben", nillable = false, required = true)
  @XmlElement(required = false, name = "stimmeingabe", nillable = true)
  private List<Stimmeingabe> stimmeingaben = new ArrayList<>();

  @XmlElementWrapper(name = "zwischensummeEingaben", nillable = false, required = true)
  @XmlElement(required = false, name = "zwischensummeEingabe", nillable = true)
  private List<ZwischensummeEingabe> zwischensummeEingaben = new ArrayList<>();

  public Ergebniseingang() {
    super();
  }

  public Long getEingangssequenznummer() {
    return eingangssequenznummer;
  }

  public void setEingangssequenznummer(Long eingangssequenznummer) {
    this.eingangssequenznummer = eingangssequenznummer;
  }

  public Date getZeitstempel() {
    return zeitstempel;
  }

  public void setZeitstempel(Date zeitstempel) {
    this.zeitstempel = zeitstempel;
  }

  public Ergebniseingangsart getErgebniseingangsart() {
    return ergebniseingangsart;
  }

  public void setErgebniseingangsart(Ergebniseingangsart ergebniseingangsart) {
    this.ergebniseingangsart = ergebniseingangsart;
  }

  public Ergebniseingangsherkunft getErgebniseingangsherkunft() {
    return ergebniseingangsherkunft;
  }

  public void setErgebniseingangsherkunft(Ergebniseingangsherkunft ergebniseingangsherkunft) {
    this.ergebniseingangsherkunft = ergebniseingangsherkunft;
  }

  public String getErfasser() {
    return erfasser;
  }

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

  public Ergebniseingabestufe getErgebniseingabestufe() {
    return ergebniseingabestufe;
  }

  public void setErgebniseingabestufe(Ergebniseingabestufe ergebniseingabestufe) {
    this.ergebniseingabestufe = ergebniseingabestufe;
  }

  public Ergebniseingangsfehlerstatus getErgebniseingangsfehlerstatus() {
    return ergebniseingangsfehlerstatus;
  }

  public void setErgebniseingangsfehlerstatus(Ergebniseingangsfehlerstatus ergebniseingangsfehlerstatus) {
    this.ergebniseingangsfehlerstatus = ergebniseingangsfehlerstatus;
  }

  public List<Stimmeingabe> getStimmeingaben() {
    return stimmeingaben;
  }

  public void setStimmeingaben(List<Stimmeingabe> stimmeingaben) {
    this.stimmeingaben = stimmeingaben;
  }

  public List<ZwischensummeEingabe> getZwischensummeEingaben() {
    return zwischensummeEingaben;
  }

  public void setZwischensummeEingaben(List<ZwischensummeEingabe> zwischensummeEingaben) {
    this.zwischensummeEingaben = zwischensummeEingaben;
  }

  public GebietReferenz getGebiet() {
    return gebiet;
  }

  public void setGebiet(GebietReferenz gebiet) {
    this.gebiet = gebiet;
  }
}
