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

import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;

import de.ivu.elect.business.gebietsbaum.boundary.GebietsartExtendedDAO;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsart;
import de.ivu.elect.business.wahl.boundary.WahlSessionSelector;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.jee.cdi.BeanManagerUtil;

public class GebietsartenDerAusgewaehltenWahlValuesSupplier implements Supplier<List<String>> {

  @Override
  public List<String> get() {
    Wahl wahl = BeanManagerUtil.getBeanByClass(WahlSessionSelector.class).getEntity();
    GebietsartExtendedDAO gebietsartExtendedDAO = BeanManagerUtil.getBeanByClass(GebietsartExtendedDAO.class);

    if(wahl == null) {
      return Collections.emptyList();
    }

    return gebietsartExtendedDAO.findByGebieteInWahlVorhanden(wahl).stream().map(Gebietsart::getName).collect(Collectors.toList());
  }
}
