Hi all and thanks for the replies!

The “get” prefix may help when interoperating with Tapestry, but I haven’t 
really had any problems dropping it. I backed away from using it 7-8 years ago 
and never looked back. I find the prefix is not only redundant but damaging, 
since it violates hiding of implementation. For example:

My DataObject subclass has methods called “firstname” and “lastname” that 
extract data from a DB property (“fullName”) by chopping up the string stored 
there.
Now I want to change how my data is stored, i.e. I want to store the first and 
last names in separate properties. If I do this, I now have to rename my 
“firstname” method to “getFirstname”, meaning: My API design now depends on an 
implementation detail, which is bad.

But anyway… Apart form this, it's probably mostly down to to taste whether you 
choose to prefix your methods or not. The question I’m asking is primarily if 
Cayenne has an opinion on it and if you feel it *should* have an opinion on it. 
I’d be very happy if it didn’t :).

Cheers,
- hugi



> On 24. júl. 2015, at 14:10, Andrus Adamchik <and...@objectstyle.org> wrote:
> 
> Hi Hugi,
> 
> 1. I can't think of anything inside Cayenne that would rely on a getter 
> (Property.getFrom(..) is user-facing API that is not directly related to 
> persistence). So you should be safe otherwise.
> 
> 2. I am with Mike - if you can, better switch to JavaBean getters. You'll 
> avoid lots of pain integrating with anything else in Java.
> 
> Andrus
> 
>> On Jul 24, 2015, at 3:32 PM, Michael Gentry <mgen...@masslight.net> wrote:
>> 
>> Hi Hugi,
>> 
>> I don't know offhand everywhere in Cayenne that get* is required, but
>> Cayenne's default templates and expectations are that the JavaBeans
>> notation (get/set/is) prefixes will be used.  Many other frameworks, such
>> as Apache Tapestry, work flawlessly with Cayenne because of the JavaBeans
>> notation, but would fail if get* were missing.
>> 
>> I used to use EOF/Objective-C, too, and at first the get* seemed annoying,
>> but now within Eclipse it is easy to type "get" and let the autocompletion
>> popup show me my options, which you can't do without that prefix.  Overall,
>> I think get* is a win because it is easier to find your getters and it
>> makes Cayenne work with other frameworks that expect the standard prefixes.
>> 
>> mrg
>> 
>> 
>> On Fri, Jul 24, 2015 at 7:37 AM, Hugi Thordarson <h...@karlmenn.is> wrote:
>> 
>>> Hi all.
>>> 
>>> I don’t use “get" prefixes on the accessors for attributes on my
>>> DataObjects. This has worked flawlessly until now, but I just stumbled onto
>>> a case where it will cause a failure inside Cayenne’s world, i.e. when
>>> attempting to  access property values on objects using
>>> org.apache.cayenne.exp.Property.getFrom( someObject ).
>>> 
>>> The method documentation explicitly states that a bean-style get-prefix is
>>> required, so this was to be expected. But I’m wondering if there are more
>>> places where Cayenne depends on it and if the requirement for the “get”
>>> prefix should be eliminated entirely within Cayenne’s universe? (I’m sure
>>> I’m not the only one who is not fond of using it)
>>> 
>>> I got around this particular case by implementing my own “poor man’s
>>> KeyValueCoding” (for those of you familiar with EOF), but it would be nice
>>> not having to do something of that ilk.
>>> 
>>> Cheers,
>>> - hugi
>>> 
>>> // Hugi Thordarson
>>> // http://www.loftfar.is/
>>> // s. 895-6688
>>> 
> 

Reply via email to