public static <T> void forEach(final Iterable<T> iterable, final Consumer<? super T> consumer) {
        if (iterable != null && consumer != null) {
            for (final T item : iterable) {
                if (item != null) {
                    consumer.accept(item);
                }
            }
        }
    }
Equivalent to {@link Iterable#forEach(Consumer)}, except consumer is only called for each non-null
item in the iterable. If iterable or consumer are null it is a no-op.
stroom-util-shared/src/main/java/stroom/util/shared/NullSafe.java