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

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

import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahlrechtspruefung.entity.Pruefkriterium;
import de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug;

@GroupedConversationScoped
@ConversationGroup(AbstractPruefkriteriumSearchParameters.class)
public class PruefkriteriumSearchParameters extends AbstractPruefkriteriumSearchParameters {

  private static final long serialVersionUID = 1L;

  private Wahl wahl;

  private Pruefkriterium pruefkriterium;

  public PruefkriteriumSearchParameters() {
    super();
  }

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

  public Wahl getWahl() {
    return wahl;
  }

  public Pruefkriterium getPruefkriterium() {
    if (pruefkriterium == null) {
      pruefkriterium = new Pruefkriterium();
      pruefkriterium.setTeilDerSofortpruefung(false);
      pruefkriterium.setWahlrechtlichRelevant(false);
    }

    return pruefkriterium;
  }

  public PruefkriteriumBezug getPruefkriteriumBezug() {
    return getPruefkriterium().getPruefkriteriumBezug();
  }

  public void setPruefkriteriumBezug(PruefkriteriumBezug pruefkriteriumBezug) {
    getPruefkriterium().setPruefkriteriumBezug(pruefkriteriumBezug);
  }

  public String getKategorie() {
    return getPruefkriterium().getKategorie();
  }

  public String getUnterkategorie() {
    return getPruefkriterium().getUnterkategorie();
  }

  public void setKategorie(String kategorie) {
    getPruefkriterium().setKategorie(kategorie);
  }

  public void setUnterkategorie(String unterkategorie) {
    getPruefkriterium().setUnterkategorie(unterkategorie);
  }

  public Boolean isTeilDerSofortpruefung() {
    return getPruefkriterium().getTeilDerSofortpruefung();
  }

  public void setTeilDerSofortpruefung(Boolean teilDerSofortpruefung) {
    getPruefkriterium().setTeilDerSofortpruefung(teilDerSofortpruefung);
  }

  public Boolean isWahlrechtlichRelevant() {
    return getPruefkriterium().getWahlrechtlichRelevant();
  }

  @Override
  public void reset() {
    pruefkriterium = null;

    super.reset();
  }
}
