package de.ivu.elect.business.stimmzettel.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.stimmzettel.entity.Stimmzettel;
import de.ivu.elect.jee.entity.customdata.EmptyCustomData;

@GroupedConversationScoped
@ConversationGroup(AbstractStimmzettelSearchParameters.class)
public class StimmzettelSearchParameters extends AbstractStimmzettelSearchParameters {

  private static final long serialVersionUID = 1L;

  private Stimmzettel stimmzettel;

  private boolean gueltigkeitPerBeschlussBestimmt = false;

  public Gebiet getGebiet() {
    return getStimmzettel().getGebiet();
  }

  public void setGebiet(Gebiet gebiet) {
    getStimmzettel().setGebiet(gebiet);
  }

  public String getNummer() {
    return getStimmzettel().getNummer();
  }

  public void setNummer(String nummer) {
    getStimmzettel().setNummer(nummer);
  }

  public boolean isGueltigkeitPerBeschlussBestimmt() {
    return gueltigkeitPerBeschlussBestimmt;
  }

  public void setGueltigkeitPerBeschlussBestimmt(boolean gueltigkeitPerBeschlussBestimmt) {
    this.gueltigkeitPerBeschlussBestimmt = gueltigkeitPerBeschlussBestimmt;
  }

  public Stimmzettel getStimmzettel() {
    if (stimmzettel == null) {
      stimmzettel = new Stimmzettel(EmptyCustomData.INSTANCE);
      stimmzettel.setStatus(null);
      stimmzettel.setGueltigkeit(null);
      stimmzettel.setStimmzettelTeam(null);
    }
    return stimmzettel;
  }

  @Override
  public void reset() {
    super.reset();
    stimmzettel = null;
    gueltigkeitPerBeschlussBestimmt = false;
  }
}
