
package de.ivu.elect.sitzberechnung.konflikt;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Nullable;

import de.ivu.elect.sitzberechnung.SitzeZuteilungArt;

public class ErgebnisKonfliktEntitiesDaten {

  private String wahlgebietKey;

  private String wahlvorschlaggebietKey;

  private String gruppeKey;

  private String listeKey;

  private Enum< ? > typ;

  private ErgebnisKonfliktStatus ergebnisKonfliktStatus;

  private long anzahlAuszuwaehlen;

  private List<String> gruppeKeysAuswaehlbar;

  private List<String> gruppeKeysAusgewaehlt;

  private List<String> listenverbindungKeysAuswaehlbar;

  private List<String> listenverbindungKeysAusgewaehlt;

  private List<String> listeKeysAuswaehlbar;

  private List<String> listeKeysAusgewaehlt;

  private List<String> kandidaturKeysAuswaehlbar;

  private List<String> kandidaturKeysAusgewaehlt;

  private List<String> sitzeZuteilungArtenEntityKeys;

  private List<SitzeZuteilungArt> sitzeZuteilungArtenAuswaehlbar;

  private List<SitzeZuteilungArt> sitzeZuteilungArtenAusgewaehlt;

  public ErgebnisKonfliktEntitiesDaten() {
    super();

    this.wahlgebietKey = "";
    this.wahlvorschlaggebietKey = "";

    this.gruppeKey = "";
    this.listeKey = "";

    this.typ = null;

    this.ergebnisKonfliktStatus = null;

    this.anzahlAuszuwaehlen = 0L;

    this.gruppeKeysAuswaehlbar = new ArrayList<>();
    this.gruppeKeysAusgewaehlt = new ArrayList<>();

    this.listenverbindungKeysAuswaehlbar = new ArrayList<>();
    this.listenverbindungKeysAusgewaehlt = new ArrayList<>();

    this.listeKeysAuswaehlbar = new ArrayList<>();
    this.listeKeysAusgewaehlt = new ArrayList<>();

    this.kandidaturKeysAuswaehlbar = new ArrayList<>();
    this.kandidaturKeysAusgewaehlt = new ArrayList<>();

    this.sitzeZuteilungArtenEntityKeys = new ArrayList<>();
    this.sitzeZuteilungArtenAuswaehlbar = new ArrayList<>();
    this.sitzeZuteilungArtenAusgewaehlt = new ArrayList<>();
  }

  public boolean isEmpty() {
    return getLosentscheidTyp() == null || getErgebnisKonfliktStatus() == null || getAnzahlAuszuwaehlen() < 1L
        || (getGruppeKeysAuswaehlbar() == null || getGruppeKeysAuswaehlbar().isEmpty()) && (getListenverbindungKeysAuswaehlbar() == null || getListenverbindungKeysAuswaehlbar().isEmpty())
            && (getListeKeysAuswaehlbar() == null || getListeKeysAuswaehlbar().isEmpty()) && (getKandidaturKeysAuswaehlbar() == null || getKandidaturKeysAuswaehlbar().isEmpty())
            && (getSitzeZuteilungArtenAuswaehlbar() == null || getSitzeZuteilungArtenAuswaehlbar().isEmpty());
  }

  @Nullable
  public String getWahlgebietKey() {
    return wahlgebietKey;
  }

  public void setWahlgebietKey(String wahlgebietKey) {
    this.wahlgebietKey = wahlgebietKey;
  }

  @Nullable
  public String getWahlvorschlaggebietKey() {
    return wahlvorschlaggebietKey;
  }

  public void setWahlvorschlaggebietKey(String wahlvorschlaggebietKey) {
    this.wahlvorschlaggebietKey = wahlvorschlaggebietKey;
  }

  @Nullable
  public String getGruppeKey() {
    return gruppeKey;
  }

  public void setGruppeKey(String gruppeKey) {
    this.gruppeKey = gruppeKey;
  }

  @Nullable
  public String getListeKey() {
    return listeKey;
  }

  public void setListeKey(String listeKey) {
    this.listeKey = listeKey;
  }

  public Enum< ? > getLosentscheidTyp() {
    return typ;
  }

  public void setLosentscheidTyp(Enum< ? > typ) {
    this.typ = typ;
  }

  public ErgebnisKonfliktStatus getErgebnisKonfliktStatus() {
    return ergebnisKonfliktStatus;
  }

  public void setErgebnisKonfliktStatus(ErgebnisKonfliktStatus ergebnisKonfliktStatus) {
    this.ergebnisKonfliktStatus = ergebnisKonfliktStatus;
  }

  public long getAnzahlAuszuwaehlen() {
    return anzahlAuszuwaehlen;
  }

  public void setAnzahlAuszuwaehlen(long anzahlAuszuwaehlen) {
    this.anzahlAuszuwaehlen = anzahlAuszuwaehlen;
  }

  public List<String> getGruppeKeysAuswaehlbar() {
    return gruppeKeysAuswaehlbar;
  }

  public void setGruppeKeysAuswaehlbar(List<String> gruppeKeysAuswaehlbar) {
    this.gruppeKeysAuswaehlbar = gruppeKeysAuswaehlbar;
  }

  public List<String> getGruppeKeysAusgewaehlt() {
    return gruppeKeysAusgewaehlt;
  }

  public void setGruppeKeysAusgewaehlt(List<String> gruppeKeysAusgewaehlt) {
    this.gruppeKeysAusgewaehlt = gruppeKeysAusgewaehlt;
  }

  public List<String> getListenverbindungKeysAuswaehlbar() {
    return listenverbindungKeysAuswaehlbar;
  }

  public void setListenverbindungKeysAuswaehlbar(List<String> listenverbindungKeysAuswaehlbar) {
    this.listenverbindungKeysAuswaehlbar = listenverbindungKeysAuswaehlbar;
  }

  public List<String> getListenverbindungKeysAusgewaehlt() {
    return listenverbindungKeysAusgewaehlt;
  }

  public void setListenverbindungKeysAusgewaehlt(List<String> listenverbindungKeysAusgewaehlt) {
    this.listenverbindungKeysAusgewaehlt = listenverbindungKeysAusgewaehlt;
  }

  public List<String> getListeKeysAuswaehlbar() {
    return listeKeysAuswaehlbar;
  }

  public void setListeKeysAuswaehlbar(List<String> listeKeysAuswaehlbar) {
    this.listeKeysAuswaehlbar = listeKeysAuswaehlbar;
  }

  public List<String> getListeKeysAusgewaehlt() {
    return listeKeysAusgewaehlt;
  }

  public void setListeKeysAusgewaehlt(List<String> listeKeysAusgewaehlt) {
    this.listeKeysAusgewaehlt = listeKeysAusgewaehlt;
  }

  public List<String> getKandidaturKeysAuswaehlbar() {
    return kandidaturKeysAuswaehlbar;
  }

  public void setKandidaturKeysAuswaehlbar(List<String> kandidaturKeysAuswaehlbar) {
    this.kandidaturKeysAuswaehlbar = kandidaturKeysAuswaehlbar;
  }

  public List<String> getKandidaturKeysAusgewaehlt() {
    return kandidaturKeysAusgewaehlt;
  }

  public void setKandidaturKeysAusgewaehlt(List<String> kandidaturKeysAusgewaehlt) {
    this.kandidaturKeysAusgewaehlt = kandidaturKeysAusgewaehlt;
  }

  public List<String> getSitzeZuteilungArtenEntityKeys() {
    return sitzeZuteilungArtenEntityKeys;
  }

  public void setSitzeZuteilungArtenEntityKeys(List<String> sitzeZuteilungArtenEntityKeys) {
    this.sitzeZuteilungArtenEntityKeys = sitzeZuteilungArtenEntityKeys;
  }

  public List<SitzeZuteilungArt> getSitzeZuteilungArtenAuswaehlbar() {
    return sitzeZuteilungArtenAuswaehlbar;
  }

  public void setSitzeZuteilungArtenAuswaehlbar(List<SitzeZuteilungArt> sitzeZuteilungArtenAuswaehlbar) {
    this.sitzeZuteilungArtenAuswaehlbar = sitzeZuteilungArtenAuswaehlbar;
  }

  public List<SitzeZuteilungArt> getSitzeZuteilungArtenAusgewaehlt() {
    return sitzeZuteilungArtenAusgewaehlt;
  }

  public void setSitzeZuteilungArtenAusgewaehlt(List<SitzeZuteilungArt> sitzeZuteilungArtenAusgewaehlt) {
    this.sitzeZuteilungArtenAusgewaehlt = sitzeZuteilungArtenAusgewaehlt;
  }
}
