code: public static <T, U> T findResult(Iterator<U> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> condition) {
          while (self.hasNext()) {
              U next = self.next();
              T result = condition.call(next);
              if (result != null) {
                  return result;
              }
          }
          return null;
      }
docs: Iterates through the Iterator calling the given closure condition for each item but stopping once the first non-null
  result is found and returning that result. If all results are null, null is returned.
  
  @param self      an Iterator
  @param condition a closure that returns a non-null value to indicate that processing should stop and the value should be returned
  @return the first non-null result from calling the closure, or null
  @since 2.5.0