Hi Nikita
That's an interesting suggestion with the Predicate parameter. I gave it
some thought and came up with the following concern.
Consider that ObjectSelect is a builder and that the fluent method
invocations can happen in "kind of" any order. So then if they're
rearranged it may result in the ObjectSelect being in a different state
than intended and the predicate subsequently not evaluating as expected.
I'm inclined to not let the developer sabotage themselves like this, on
the other hand maybe there's a use case for it.
Did you have a use case in mind ? What do you think about the order
influencing the outcome ?
Thanks, regards
Jurgen
On Tue, 09 Jul 2024 10:06:51 +0200, Nikita Timofeev
<ntimof...@objectstyle.com> wrote:
Hi all,
I like the functional style of apply(). For me it seems best as it's
flexible and has a small footprint.
And as for the condition part we could just add overloaded version with
Predicate<> argument, like this:
public ObjectSelect<T> apply(Predicate<ObjectSelect<T>> cond,
Consumer<ObjectSelect<T>> op) {
if(cond.test(this)) {
op.accept( this );
}
return this;
}
John's example could be done like this:
.apply(q -> yearRange != null, q ->
q.and(APPOINTMENT_DATE.gt(yearRange)))