package de.ivu.elect.business.wahlbeteiligung.boundary;

import org.apache.deltaspike.core.api.scope.ConversationGroup;
import org.apache.deltaspike.core.api.scope.GroupedConversationScoped;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahlbeteiligung.entity.Wahlbeteiligung;
import de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungAuswertung;

@GroupedConversationScoped
@ConversationGroup(AbstractWahlbeteiligungSearchParameters.class)
public class WahlbeteiligungSearchParameters extends AbstractWahlbeteiligungSearchParameters {
  private static final long serialVersionUID = 1L;

  private Wahlbeteiligung wahlbeteiligung;

  private Gebiet gebiet;

  private Wahl wahl;

  private boolean untergeordneteGebieteAnzeigen = true;

  public Wahl getWahl() {
    return wahl;
  }

  public void setWahl(Wahl wahl) {
    this.wahl = wahl;
  }

  public Gebiet getGebiet() {
    return gebiet;
  }

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

  public Wahlbeteiligung getWahlbeteiligung() {
    if (wahlbeteiligung == null) {
      wahlbeteiligung = new Wahlbeteiligung();
      wahlbeteiligung.setWahlbeteiligungAuswertung(new WahlbeteiligungAuswertung());
    }
    return wahlbeteiligung;
  }

  public WahlbeteiligungAuswertung getWahlbeteiligungAuswertung() {
    return getWahlbeteiligung().getWahlbeteiligungAuswertung();
  }

  public boolean isUntergeordneteGebieteAnzeigen() {
    return untergeordneteGebieteAnzeigen;
  }

  public void setUntergeordneteGebieteAnzeigen(boolean untergeordneteGebieteAnzeigen) {
    this.untergeordneteGebieteAnzeigen = untergeordneteGebieteAnzeigen;
  }

  @Override
  public void reset() {
    super.reset();
    wahlbeteiligung = null;
    untergeordneteGebieteAnzeigen = true;
    gebiet = null;
    wahl = null;
  }

}
