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

Reply via email to