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

import java.io.Serializable;
import java.util.function.BooleanSupplier;

import javax.enterprise.context.RequestScoped;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingangsherkunft;
import de.ivu.elect.business.wahl.entity.WahlartErgebnisart;

@RequestScoped // ELECTBB-19 - Instanzen bleiben sonst beim automatischen Stimmenimport im Speicher...
public class StimmeingabeAufGebietMoeglichChecker implements Serializable {

  private static final long serialVersionUID = 1L;

  public StimmeingabeAufGebietMoeglichChecker() {
    super();
  }

  public boolean isStimmeingabeAufGebietMoeglich(Gebiet gebiet) {
    return gebiet.isErfassungsgebiet();
  }

  public boolean isStimmeingabeUndErfassenAufGebietMoeglich(Wahldurchfuehrungsgebiet gebiet, WahlartErgebnisart ergebnisart, Ergebniseingangsherkunft ergebniseingangsherkunft,
      BooleanSupplier eingangsherkunftIgnorieren) {
    return isStimmeingabeAufGebietMoeglich(gebiet) && gebiet.isEingabeMoeglich(ergebnisart, ergebniseingangsherkunft, eingangsherkunftIgnorieren);
  }
}
