code: public static <E> Stream<E> validate(Stream<E> stream, Predicate<? super E> validator, UnaryOperator<E> transformingIfNotValid) {
          return validate(stream, validator, Function.identity(), transformingIfNotValid);
      }
docs: <p>Generates a stream by validating the elements of an input stream one by one using the provided predicate. </p>
  <p>An element of the input stream is said to be valid if the provided predicate returns true for this element.</p>
  <p>A valid element is transmitted to the returned stream without any transformation. A non-valid element is
  replaced by the application of the provided unary operator. </p>
  <p>This function calls the general version of <code>validate()</code> with special parameters.</p>
  <p>A <code>NullPointerException</code> will be thrown if one of the provided elements is null. </p>
  
  @param stream                 the stream to be validated. Will throw a <code>NullPointerException</code> if <code>null</code>.
  @param validator              the predicate used to validate the elements of the stream.
  Will throw a <code>NullPointerException</code> if <code>null</code>.
  @param transformingIfNotValid the operator applied to the non-valid elements.
  Will throw a <code>NullPointerException</code> if <code>null</code>.
  @param <E>                    the type of the stream and the returned stream.
  @return the validated and transformed stream.