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

import javax.ejb.Stateless;
import javax.inject.Inject;

import de.ivu.elect.business.security.control.NlElectExtendedUseCasePermissionFilter;
import de.ivu.elect.business.wahl.entity.NlWahlCustomData;
import de.ivu.elect.business.wahl.entity.NlWahlPhase;
import de.ivu.elect.business.wahl.entity.Wahl;

@Stateless
public class NlWahlprozess {

  @Inject
  private transient WahlDAO wahlDAO;

  public void setzeWahlPhase(Wahl wahlNotAttached, NlWahlPhase nlWahlPhase) {
    setzePhase(nlWahlPhase, wahlDAO.attach(wahlNotAttached));
  }

  protected void setzePhase(NlWahlPhase nlWahlPhase, Wahl wahl) {
    wahl.getCustomData(NlWahlCustomData.class).setNlWahlPhase(nlWahlPhase);
    NlElectExtendedUseCasePermissionFilter.resetCache(); // Ist von Wahlphase abhaengig
  }


  protected NlWahlPhase bestimmeNlWahlPhaseBisher(Wahl wahl) {
    return wahl.getCustomData(NlWahlCustomData.class).getNlWahlPhase();
  }
}
