package de.ivu.elect.business.gruppeimgebiet.entity;

import java.io.Serializable;

public class ReihenfolgeBestaetigenOption implements Serializable {

  public static final ReihenfolgeBestaetigenOption NUR_RELATIVE_POSITIONEN_AUF_GEBIET = new ReihenfolgeBestaetigenOption(
      false,
      true,
      false,
      false,
      false,
      false);

  private static final long serialVersionUID = 1L;

  private boolean untergeordneteGebiete;

  private boolean relativePositionenSetzen;

  private boolean relativePositionenUntergeordneterGebietUeberschreiben;

  private boolean vorgegebenePositionenSetzen; // Stimmzettelreichenfolge

  private boolean positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen; // ELECT-16175

  public boolean isVorgegebenePositionenAusRelativerPositionUebernehmen() {
    return vorgegebenePositionenAusRelativerPositionUebernehmen;
  }

  public void setVorgegebenePositionenAusRelativerPositionUebernehmen(boolean vorgegebenePositionenAusRelativerPositionUebernehmen) {
    this.vorgegebenePositionenAusRelativerPositionUebernehmen = vorgegebenePositionenAusRelativerPositionUebernehmen;
  }

  private boolean vorgegebenePositionenAusRelativerPositionUebernehmen; //ELECT-11262

  public ReihenfolgeBestaetigenOption(boolean untergeordneteGebiete,
                                      boolean relativePositionenSetzen,
                                      boolean relativePositionenUntergeordneterGebietUeberschreiben,
                                      boolean vorgegebenePositionenSetzen,
                                      boolean vorgegebenePositionenAusRelativerPositionUebernehmen,
                                      boolean positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen
  ) {
    this.untergeordneteGebiete = untergeordneteGebiete;
    this.relativePositionenSetzen = relativePositionenSetzen;
    this.relativePositionenUntergeordneterGebietUeberschreiben = relativePositionenUntergeordneterGebietUeberschreiben;
    this.vorgegebenePositionenSetzen = vorgegebenePositionenSetzen;
    this.vorgegebenePositionenAusRelativerPositionUebernehmen = vorgegebenePositionenAusRelativerPositionUebernehmen;
    this.positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen = positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen;
  }

  public boolean isPositionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen() {
    return positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen;
  }

  public void setPositionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen(boolean positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen) {
    this.positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen = positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen;
  }

  public boolean isUntergeordneteGebiete() {
    return untergeordneteGebiete;
  }

  public void setUntergeordneteGebiete(boolean untergeordneteGebiete) {
    this.untergeordneteGebiete = untergeordneteGebiete;
  }

  public boolean isVorgegebenePositionenSetzen() {
    return vorgegebenePositionenSetzen;
  }

  public void setVorgegebenePositionenSetzen(boolean vorgegebenePositionenSetzen) {
    this.vorgegebenePositionenSetzen = vorgegebenePositionenSetzen;
  }

  public boolean isRelativePositionenSetzen() {
    return relativePositionenSetzen;
  }

  public void setRelativePositionenSetzen(boolean relativePositionenSetzen) {
    this.relativePositionenSetzen = relativePositionenSetzen;
  }

  public boolean isRelativePositionenUntergeordneterGebietUeberschreiben() {
    return relativePositionenUntergeordneterGebietUeberschreiben;
  }

  public void setRelativePositionenUntergeordneterGebietUeberschreiben(boolean relativePositionenUntergeordneterGebietUeberschreiben) {
    this.relativePositionenUntergeordneterGebietUeberschreiben = relativePositionenUntergeordneterGebietUeberschreiben;
  }

  @Override
  public String toString() {
    return "ReihenfolgeBestaetigenOption{" +
        "untergeordneteGebiete=" + untergeordneteGebiete +
        ", relativePositionenSetzen=" + relativePositionenSetzen +
        ", relativePositionenUntergeordneterGebietUeberschreiben=" + relativePositionenUntergeordneterGebietUeberschreiben +
        ", vorgegebenePositionenSetzen=" + vorgegebenePositionenSetzen +
        ", vorgegebenePositionenAusRelativerPositionUebernehmen=" + vorgegebenePositionenAusRelativerPositionUebernehmen +
        ", positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen=" + positionenVonAktuellemGebietAufUntergeordneteGebieteUebernehmen +
        '}';
  }
}
