Re: cayenne get accessors

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Apr 04 2006 - 11:05:22 EDT

  • Next message: Mike Kienenberger: "Re: cayenne get accessors"

    Unlike WO key-value coding, Java standard convention (called
    JavaBeans) is to use the "getXyz" for an accessor method of a logical
    property "xyz". All the Expression classes (and endless other Java
    libraries) follow this convention, so I'd strongly recommend not to
    modify the getters. You'll have to get used to it, it took me quite
    some time to adapt too :-)

    Andrus

    On Apr 4, 2006, at 6:58 PM, Cyp her wrote:

    > Hi
    >
    > Does Cayenne force you to have *get* before your property name to
    > create your get accessor e.g. getName().
    >
    > I have a table like this
    >
    > PERSON
    > id
    > firstName
    > lastName
    >
    > and the Modeler creates these accessors
    >
    > public class _Person extends CayenneDataObject {
    >
    > public String getFirstName() ...
    > public String getLastName() ...
    >
    > }
    >
    > Which is fine. I have read you can get custom templates to change
    > this and I did try by grabbing the default templates from the jar
    > and modifying them but this did not work. Does anybody know how?
    >
    > My real problems start here however. In the subclass Person I have
    > this code
    >
    > public class Person extends _Person {
    >
    > public String fullName() {
    > return this.getFirstName() + “ “ + this.getLastName();
    > }
    > }
    >
    > and when I try and use and Expression to get a particular Person
    > like this
    >
    > Expression fullNameQualifier = ExpressionFactory.matchExp
    > ("fullName", “John Doe”);
    >
    > List filteredPersons = fullNameQualifier.filterObjects(personsList);
    >
    > The List is always empty even though I do have a person named John
    > Doe in my database (MySQL). But oddly enough if I change my method
    > in the Person class to be this
    >
    > public class Person extends _Person {
    >
    > public String getFullName() {
    > return this.getFirstName + “ “ + this.getLastName;
    > }
    > }
    >
    > i.e. change the method name to be getFullName instead of just
    > fullName.
    >
    > Why must I prefix all my get accessors with *get*? I want to get
    > rid of *get* in all the super classes too so does anyone have a
    > template I can use to oust them?
    >
    > Lawrence
    >
    > _________________________________________________________________
    > Be the first to hear what's new at MSN - sign up to our free
    > newsletters! http://www.msn.co.uk/newsletters
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Apr 04 2006 - 11:05:50 EDT