package com.airlock.iam.techclient.infrastructure.repository;

import jakarta.inject.Inject;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;

public final class SupplyInstances<T, B extends Supplier<T>> implements Function<Map<Integer, B>, Collection<T>> {
   public Collection<T> apply(Map<Integer, B> map) {
      Collection<B> suppliers = map.values();
      return suppliers.isEmpty() ? List.of() : suppliers.stream().map(Supplier::get).collect(Collectors.toList());
   }
}
