package fr.adrienbrault.idea.symfony2plugin.dic.container.suggestion.utils;
import com.intellij.util.containers.ContainerUtil;
import fr.adrienbrault.idea.symfony2plugin.dic.ContainerService;
import fr.adrienbrault.idea.symfony2plugin.dic.container.dict.ServiceTypeHint;
import fr.adrienbrault.idea.symfony2plugin.util.dict.ServiceUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Collections;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class ServiceSuggestionUtil {
@NotNull
private static Collection<String> createServiceCollection(@NotNull ServiceTypeHint serviceTypeHint, @NotNull Collection<ContainerService> serviceMap) {
Collection<ContainerService> suggestions = ServiceUtil.getServiceSuggestionsForTypeHint(
serviceTypeHint.getMethod(),
serviceTypeHint.getIndex(),
serviceMap
);
if(suggestions.size() == 0) {
return Collections.emptyList();
}
return ContainerUtil.map(suggestions, ContainerService::getName);
}
@NotNull
public static Collection<String> createSuggestions(@Nullable ServiceTypeHint serviceTypeHint, @NotNull Collection<ContainerService> serviceMap) {
if(serviceTypeHint == null) {
return Collections.emptyList();
}
return ServiceSuggestionUtil.createServiceCollection(serviceTypeHint, serviceMap);
}
}