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

import static java.util.Objects.isNull;

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.gruppe.entity.Gruppe;
import de.ivu.elect.business.wahlvorschlag.entity.Liste;
import de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagStatus;

@GroupedConversationScoped
@ConversationGroup(AbstractListeSearchParameters.class)
public class ListeSearchParameters extends AbstractListeSearchParameters {

  private static final long serialVersionUID = 1L;

  private Liste liste;

  private Gebiet gebiet;

  private Gruppe gruppe;

  private boolean listenUebergeordneterGebieteAnzeigen = false;

  public ListeSearchParameters() {
    super();
  }

  public Gebiet getGebiet() {
    return gebiet;
  }

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

  public String getKurzname() {
    return getListe().getKurzname();
  }


  public void setKurzname(String kurzname) {
    getListe().setKurzname(kurzname);
  }

  public String getKennwort() {
    return getListe().getKennwort();
  }

  public void setKennwort(String kennwort) {
    getListe().setKennwort(kennwort);
  }

  public WahlvorschlagStatus getWahlvorschlagStatus() {
    return getListe().getWahlvorschlagStatus();
  }

  public void setWahlvorschlagStatus(WahlvorschlagStatus wahlvorschlagStatus) {
    getListe().setWahlvorschlagStatus(wahlvorschlagStatus);
  }

  public boolean isListenUebergeordneterGebieteAnzeigen() {
    return listenUebergeordneterGebieteAnzeigen;
  }

  public void setListenUebergeordneterGebieteAnzeigen(boolean listenUebergeordneterGebieteAnzeigen) {
    this.listenUebergeordneterGebieteAnzeigen = listenUebergeordneterGebieteAnzeigen;
  }

  public Gruppe getGruppe() {
    return gruppe;
  }

  public void setGruppe(Gruppe gruppe) {
    this.gruppe = gruppe;
  }

  public Liste getListe() {
    if (isNull(liste)) {
      liste = new Liste();
      liste.setWahlvorschlagStatus(null);
    }

    return liste;
  }

  @Override
  public void reset() {
    liste = null;
    gruppe = null;
    listenUebergeordneterGebieteAnzeigen = false;

    super.reset();
  }
}
