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

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

import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.personenpruefung.entity.ExternerAbgleich;
import de.ivu.elect.business.personenpruefung.entity.ExternerAbgleichStatus;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.jee.entity.customdata.EmptyCustomData;

@GroupedConversationScoped
@ConversationGroup(AbstractExternerAbgleichSearchParameters.class)
public class ExternerAbgleichSearchParameters extends AbstractExternerAbgleichSearchParameters {

  private static final long serialVersionUID = 1L;

  private Wahl wahl;

  private ExternerAbgleich externerAbgleich;

  private boolean wahlvorschlaegeAnzeigen;

  private boolean unterstuetzerAnzeigen;

  public ExternerAbgleichSearchParameters() {
    super();
  }

  public Wahl getWahl() {
    return wahl;
  }

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

  public String getOrdnungsmerkmal() {
    return getExternerAbgleich().getPersonendaten().getOrdnungsmerkmal();
  }

  public void setOrdnungsmerkmal(String ordnungsmerkmal) {
    getExternerAbgleich().getPersonendaten().setOrdnungsmerkmal(ordnungsmerkmal);
  }

  public ExternerAbgleichStatus getExternerAbgleichStatus() {
    return getExternerAbgleich().getExternerAbgleichStatus();
  }

  public void setExternerAbgleichStatus(ExternerAbgleichStatus externerAbgleichStatus) {
    getExternerAbgleich().setExternerAbgleichStatus(externerAbgleichStatus);
  }

  public ExternerAbgleich getExternerAbgleich() {
    if (externerAbgleich == null) {
      externerAbgleich = new ExternerAbgleich();
      externerAbgleich.setExternerAbgleichStatus(ExternerAbgleichStatus.UNGEPRUEFT);
      externerAbgleich.setPersonendaten(new Personendaten(EmptyCustomData.INSTANCE));
    }

    return externerAbgleich;
  }

  public boolean isWahlvorschlaegeAnzeigen() {
    return wahlvorschlaegeAnzeigen;
  }

  public void setWahlvorschlaegeAnzeigen(boolean wahlvorschlaegeAnzeigen) {
    this.wahlvorschlaegeAnzeigen = wahlvorschlaegeAnzeigen;
  }

  public boolean isUnterstuetzerAnzeigen() {
    return unterstuetzerAnzeigen;
  }

  public void setUnterstuetzerAnzeigen(boolean unterstuetzerAnzeigen) {
    this.unterstuetzerAnzeigen = unterstuetzerAnzeigen;
  }

  @Override
  public void reset() {
    wahl = null;
    externerAbgleich = null;

    super.reset();
  }
}
