On Jul 13, 2012, at 2:23 AM, Maik Musall wrote: > > Am 13.07.2012 um 01:20 schrieb Ramsey Gurley: > >> >> On Jul 12, 2012, at 3:26 PM, Maik Musall wrote: >> >>> >>> Am 12.07.2012 um 23:58 schrieb Louis Demers: >>>> User newUser = (User)EOUtilities.createAndInsertInstance(ec, >>>> User.ENTITY_NAME) ; >>> >>> Much too wordy for my taste, and needs a cast on top of it. Just add a >>> second constructor in your template which does ec.insertObject(this), so >>> that you can simply use >>> >>> User newUser = new User( ec ); >>> >>> Do not delete the parameter-less constructor though, because EOF needs that >>> internally when restoring objects from db. But refrain from using that >>> anywhere in your app. >>> >>> Maik >> >> I know the rule is not followed strictly in WO/Wonder, but as a general rule >> in java, do not let 'this' escape the constructor. >> >> http://www.javapractices.com/topic/TopicAction.do?Id=252 > > Indeed, you're right. Using a factory method is the better way. I just looked > into what insertObject() actually does and it's really more than you would > want to happen inside a constructor, although I never had a problem with this > in years. Still, I'd make a factory method in the template to be called like > > User newUser = User.newInEc( ec );
I like User newUser = User.clazz.createAndInsertObject(ec); clazz pattern rocks :-) > > Side note: javapractices.com is good, but not infallible. For example, it is > badly misguided > about spaces instead of tabs... ;-) > (http://www.javapractices.com/topic/TopicAction.do?Id=244) > > Maik Haha, I didn't see that one. Sacrilege indeed! Ramsey _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com