import static lombok.Yield.yield;
import java.lang.Iterable;
import java.util.List;
import lombok.Functions.Function1;
import lombok.val;
class YieldAndVal {
public static <S, T> Iterable<T> needsMoreVal(final Iterable<S> values, final Function1<S, List<T>> selector) {
for (val item : values) {
val subItems = selector.apply(item);
if (subItems != null) {
for (val subItem : subItems) yield(subItem);
}
}
}
}