class StreamUtilities {

    public static <T> List<T> filter(Collection<? extends T> input, Predicate<? super T> predicate)
    {
        List<T> list;
        if (predicate != null)
        {
            list = CollectionUtilities.hasContent(input) ? input.stream().filter(predicate).collect(Collectors.toList())
                    : New.list();
        }
        else
        {
            list = New.list(input);
        }
        return list;
    }

    private  StreamUtilities();

}