cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <mgen...@masslight.net>
Subject Re: [jira] [Created] (CAY-1724) Add 'Property' class for easier and better Expression creation
Date Fri, 03 Aug 2012 01:57:20 GMT
I'm a bit delayed and just saw this ...

I'm curious how much extra overhead this will add to each Cayenne
class?  Probably not a huge issue since it is declared statically, but
I'm still curious.

Thanks,

mrg


On Wed, Jul 11, 2012 at 3:04 AM, Andrus Adamchik <andrus@objectstyle.org> wrote:
> +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