public static <T> Iterable<T> unmodifiableIterable(final Iterable<T> iterable) {
    return new UnmodifiableIterable<>(iterable);
  }
Construct a new unmodifiable {@link Iterable} backed by the supplied <code>iterable</code>.

{@link Iterable#iterator()} will return an umodifiable {@link Iterator} on which calling
{@link Iterator#remove()} will throw {@link UnsupportedOperationException}.

@param iterable to wrap as unmodifiable
@return unmodifiable {@link Iterable}
@since GemFire 8.1
geode-core/src/main/java/org/apache/geode/internal/util/CollectionUtils.java