openrtb-core/src/main/java/com/google/openrtb/util/ProtoUtils.java
public static <B extends MessageLite.Builder> boolean update(
      Iterable<B> objs, Function<B, Boolean> updater) {
    checkNotNull(updater);
    boolean updated = false;

    for (B obj : objs) {
      updated |= updater.apply(obj);
    }
    return updated;
  }
public static <B extends MessageLite.Builder> boolean update(
      Iterable<B> objs, Function<B, Boolean> updater) {
    checkNotNull(updater);
    boolean updated = false;

    for (B obj : objs) {
      updated |= updater.apply(obj);
    }
    return updated;
  }
Updates every builder from a sequence.

@param objs List of builders to update
@param updater Update function. The {@code apply()} method can decide or not to update each
object, and it's expected to return {@code true} if some update was made
@return {@code true} if at least one object was updated