default Dtor<S, T> sourceFilter(final Predicate<? super S> predicate) {
		requireNonNull(predicate);
		return source -> predicate.test(source) ? unapply(source) : Stream.empty();
	}
Create a new {@code Extractor} by filtering the source object. If the
given {@code predicate} doesn't match, the created extractor will always
return an empty {@code Stream}.

@param predicate the source object {@code predicate}
@return a new {@link Dtor} which filters on the source object
@throws NullPointerException if the given {@code predicate} is {@code null}
jenetics.incubator/src/main/java/io/jenetics/incubator/beans/internal/Dtor.java