
package de.ivu.elect.business.wahl.control;

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

import de.ivu.elect.business.dokumente.entity.DokumentVorlage;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlParameter;


import static java.util.Collections.emptyList;

public class WahlImportObject implements Serializable {

  private static final long serialVersionUID = 1L;

  private Wahldaten wahldaten;

  private final boolean wahlkonfigurationVorhanden;

  private final List<DokumentVorlage> dokumentVorlagen;

  private final List<WahlParameter> wahlParameters;

  private final boolean gruppenImGebietVervollstaendigen;

  // Default Konstruktor aus irgendeinem komische WELD-Grund notwendig...
  public WahlImportObject() {
    this(null, false, emptyList(), emptyList());
  }

  public WahlImportObject(Wahldaten wahldaten, boolean wahlkonfigurationVorhanden, List<DokumentVorlage> dokumentVorlagen, List<WahlParameter> wahlParameters) {
    this(wahldaten, wahlkonfigurationVorhanden, dokumentVorlagen, wahlParameters, false);
  }

  public WahlImportObject(Wahldaten wahldaten, boolean wahlkonfigurationVorhanden, List<DokumentVorlage> dokumentVorlagen, List<WahlParameter> wahlParameters
      , boolean gruppenImGebietVervollstaendigen) {
    this.wahldaten = wahldaten;
    this.wahlkonfigurationVorhanden = wahlkonfigurationVorhanden;
    this.dokumentVorlagen = dokumentVorlagen;
    this.wahlParameters = wahlParameters;
    this.gruppenImGebietVervollstaendigen = gruppenImGebietVervollstaendigen;
  }

  public Wahldaten<Wahl, Gebiet> getWahldaten() {
    return wahldaten;
  }

  public void setWahldaten(Wahldaten wahldaten) {
    this.wahldaten = wahldaten;
  }

  public boolean isWahlkonfigurationVorhanden() {
    return wahlkonfigurationVorhanden;
  }

  public List<WahlParameter> getWahlParameters() {
    return wahlParameters;
  }

  public List<DokumentVorlage> getDokumentVorlagen() {
    return dokumentVorlagen;
  }

  public boolean isGruppenImGebietVervollstaendigen() {
    return gruppenImGebietVervollstaendigen;
  }
}
