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 javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ErfassteStimmen {

  @XmlElement(required = false) // Optional nur für Abwärtskompatibilität, Feld ist Pflicht ELECTMUC-2011
  private String wahlterminNummer;

  @XmlElement(required = false) // Optional nur für Abwärtskompatibilität, Feld ist Pflicht
  private Date wahldatum;

  @XmlElement(required = false) // Optional nur für Abwärtskompatibilität, Feld ist Pflicht
  private String wahlart;

  @XmlElement(required = false) // Optional nur für Abwärtskompatibilität, Feld ist Pflicht
  private String wahlname;

  @XmlElementWrapper(name = "ergebniseingaenge", nillable = false, required = true)
  @XmlElement(required = false, name = "ergebniseingang", nillable = true)
  private List<Ergebniseingang> ergebniseingaenge = new ArrayList<>();

  @XmlElementWrapper(name = "geloeschterErgebniseingaenge", nillable = false, required = false) // Optional nur für Abwärtskompatibilität, Feld ist Pflicht
  @XmlElement(required = false, name = "geloeschterErgebniseingang", nillable = true)
  private List<GeloeschterErgebniseingang> geloeschterErgebniseingaenge = new ArrayList<>();

  @XmlElementWrapper(name = "eingabestatusAktualisierungen", nillable = false, required = false) // Optional nur für Abwärtskompatibilität, Feld ist Pflicht
  @XmlElement(required = false, name = "eingabestatusAktualisierung", nillable = true)
  private List<EingabestatusAktualisierung> eingabestatusAktualisierungen = new ArrayList<>();

  public List<GeloeschterErgebniseingang> getGeloeschterErgebniseingaenge() {
    return geloeschterErgebniseingaenge;
  }

  public void setGeloeschterErgebniseingaenge(List<GeloeschterErgebniseingang> geloeschterErgebniseingaenge) {
    this.geloeschterErgebniseingaenge = geloeschterErgebniseingaenge;
  }

  public List<Ergebniseingang> getErgebniseingaenge() {
    return ergebniseingaenge;
  }

  public void setErgebniseingaenge(List<Ergebniseingang> ergebniseingaenge) {
    this.ergebniseingaenge = ergebniseingaenge;
  }

  public Date getWahldatum() {
    return wahldatum;
  }

  public void setWahldatum(Date wahldatum) {
    this.wahldatum = wahldatum;
  }

  public String getWahlart() {
    return wahlart;
  }

  public void setWahlart(String wahlart) {
    this.wahlart = wahlart;
  }

  public String getWahlname() {
    return wahlname;
  }

  public void setWahlname(String wahlname) {
    this.wahlname = wahlname;
  }

  public String getWahlterminNummer() {
    return wahlterminNummer;
  }

  public void setWahlterminNummer(String wahlterminNummer) {
    this.wahlterminNummer = wahlterminNummer;
  }

  public List<EingabestatusAktualisierung> getEingabestatusAktualisierungen() {
    if (eingabestatusAktualisierungen == null) {
      eingabestatusAktualisierungen = new ArrayList<>();
    }
    return eingabestatusAktualisierungen;
  }

  public void setEingabestatusAktualisierungen(List<EingabestatusAktualisierung> eingabestatusAktualisierungen) {
    this.eingabestatusAktualisierungen = eingabestatusAktualisierungen;
  }
}


