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

import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

import javax.inject.Inject;

import de.ivu.elect.business.konfiguration.entity.CustomParameterFilter;
import de.ivu.elect.business.konfiguration.entity.Konfiguration;
import de.ivu.elect.business.system.entity.SystemGebietsebene;

public class SystemGebietsebeneFilter implements CustomParameterFilter<Konfiguration, SystemGebietsebene> {

  @Inject
  private transient SystemGebietsebeneAuswahl systemGebietsebeneAuswahl;

  @Override
  public List<SystemGebietsebene> filter(Konfiguration customParameter, List<SystemGebietsebene> values) {
    Set<SystemGebietsebene> availableSystemGebietsebenen = systemGebietsebeneAuswahl.getAvailableSystemGebietsebenen();
    return values.stream().filter(availableSystemGebietsebenen::contains).collect(Collectors.toList());
  }
}
