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 <[email protected]> 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 >> >> >> >
