On 6/10/2014 2:10am, Andrus Adamchik wrote:
> // a single chain from query to object list
> List<Painting> paintings2 = SelectQuery.query(Painting.class,
> qualifier2).select(context);
Since we already have a constructor with the appropriate arguments, why not go
for this as the recommended approach:
List<Painting> paintings2 = new SelectQuery(Painting.class,
qualifier2).select(context);
I'm not really sure it makes a difference either way, but just throwing it out
there. They will both work, but the constructor doesn't have generics yet.
> // static use of "exp" (former "Expression.fromString")
> // immediate parameter binding
> Expression qualifier3 = exp("artist.dateOfBirth < $date", "date",
> c.getTime());
Can't we parse without any ambiguity:
exp("artist.dateOfBirth < $date", c.getTime());
> // static use of 'or' seems cleaner than chaining expressions with
> 'exp.orExp(..)'
> List<Painting> paintings4 = SelectQuery.query(Painting.class, or(qualifier2,
> qualifier3)).select(context);
Let's see how this plays out with longer queries:
List<Painting> paintings4 = SelectQuery.query(Painting.class,
and(or(qualifier2, qualifier3), qualifier4)).select(context);
That looks a bit like reverse Polish notation. To my mind, this approach is
clearer:
List<Painting> paintings4 = new
SelectQuery(Painting.class).or(qualifier1).or(qualifier3).and(qualifier4).select(context);
Am I misunderstanding the different approaches to this? It appears both are
valid with the patch you are proposing. Also, I think the use of the words
"qualifier" and "expression" are confusing. We use them interchangeably without
much reason. Can we pick one and stick to it?
Ari
--
-------------------------->
Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A