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

import java.util.Collections;
import java.util.List;
import java.util.function.Function;

import de.ivu.elect.business.gebietsbaum.boundary.AbstractWahldurchfuehrungsgebietDAO;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;

public class DaoStimmeingabeKopfzahlKonfigurationContext implements StimmeingabeKopfzahlKonfigurationContext {

  private final AbstractWahldurchfuehrungsgebietDAO wahldurchfuehrungsgebietDAO;

  public DaoStimmeingabeKopfzahlKonfigurationContext(AbstractWahldurchfuehrungsgebietDAO wahldurchfuehrungsgebietDAO) {
    this.wahldurchfuehrungsgebietDAO = wahldurchfuehrungsgebietDAO;
  }

  @Override
  public Function<Gebiet, List<Wahldurchfuehrungsgebiet>> getErfasstFuer() {
    if (wahldurchfuehrungsgebietDAO==null) {
      return x-> Collections.emptyList(); // unit-tests
    }
    return wahldurchfuehrungsgebietDAO::findByErfasstFuerGebiete;
  }
}
