cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Huss (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAY-1724) Add 'Property' class for easier and better Expression creation
Date Wed, 11 Jul 2012 04:30:34 GMT

     [ https://issues.apache.org/jira/browse/CAY-1724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

John Huss updated CAY-1724:
---------------------------

    Attachment: Property.java
    
> 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
>              Labels: patch
>         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