cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: [jira] [Created] (CAY-1724) Add 'Property' class for easier and better Expression creation
Date Wed, 11 Jul 2012 07:04:43 GMT
+1. I saw it used on one project and it was a nice concept.

Andrus

On Jul 11, 2012, at 7:30 AM, John Huss (JIRA) wrote:

> John Huss created CAY-1724:
> ------------------------------
> 
>             Summary: Add 'Property' class for easier and better Expression creation
>                 Key: CAY-1724
>                 URL: https://issues.apache.org/jira/browse/CAY-1724
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>    Affects Versions: 3.2M1
>            Reporter: John Huss
>            Priority: Minor
>         Attachments: Property.java
> 
> Project Wonder (WebObjects) has a class which is basically just a wrapper around an attribute
or relationship name that gives you a way to create Expressions in type-safe manner and with
minimal effort.  Also sort orderings can be easily generated.  In Wonder, these "property"
objects are part of the entity template so they are generated automatically.
> 
> So for example:
> 
> public class _Artist extends CayenneDataObject {
>    public static final Property<String> NAME = new Property<String>(NAME_PROPERTY);
> ...
> }
> 
> Then client code can do things like:
> 
> new SelectQuery(Artist.class, NAME.eq("Pablo").andExp(AGE.gt(40)), AGE.descs());
> 
> This would select all artists with name equal to Pablo and age greater than 40 and order
them in descending age order.
> 
> This concept has been proven to work incredibly well with WebObjects.  It's almost as
readable as using plain strings but has complete compile-time checking for the property name
and the type of the objects it is compared with.
> 
> A complete implementation is attached.  It's very simple since ExpressionFactory does
the work.  If this is accepted, it would make sense to modify the built-in entity templates
to generate Property constants for all of the properties.
> 
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> For more information on JIRA, see: http://www.atlassian.com/software/jira
> 
> 
> 


Mime
View raw message