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

import java.util.function.BiFunction;

import javax.inject.Inject;

import de.ivu.elect.business.wahl.control.WahlResetTransaction;
import de.ivu.elect.business.wahl.entity.WahlPK;
import de.ivu.elect.business.wahl.entity.WahlResetStatus;
import de.ivu.elect.business.wahl.entity.WahlResetStatusContainer;


import static de.ivu.elect.business.wahl.boundary.WahlResetAsync.getResetAktionenOhneReplikationOhneCacheReset;

public class WahlResetSync {

  @Inject
  private transient WahlResetTransaction wahlResetTransaction;

  public void resetOhneReplikation(WahlPK wahlPK) {
    WahlResetStatusContainer statusContainer = new WahlResetStatusContainer(WahlResetStatus.LAEUFT);
    for (BiFunction<WahlPK, WahlResetStatusContainer, WahlResetStatusContainer> action : getResetAktionenOhneReplikationOhneCacheReset(wahlResetTransaction)) {
      statusContainer = action.apply(wahlPK, statusContainer);
    }
  }
}
