docs: public static <T> Collection<? extends T> filteredCopyOf(final Collection<? extends T> source,
  															 final Collection<? extends T> filter)
  	{
  		final Collection<T> copy;
  		if (source != null)
  		{
  			copy = new LinkedList<T>(source);
  		}
  		else
  		{
  			copy = new LinkedList<T>();
  		}
  		if (filter != null)
  		{
  			copy.removeAll(new ArrayList<T>(filter));
  		}
  		return copy;
  	}