On 2010-12-14, at 2:20 PM, Ricardo J. Parada wrote: > > I've always wondered what that clazz thingy is. I'm still not sure. I read > the javadoc on EOEnterpriseObjectClazz but still I don't quite get it. > What is it? Maybe a little example will go a long way in understanding. :-)
Hi Ricardo, You're not alone :-) To date I've been following BugTracker as an example to let me integrate the pattern into my D2W applications to give me really fine control of what objects I'm displaying in lists. I'm probably not understanding all that the Clazz pattern adds to the mix, but using it has allowed me to start understanding Anjo's example BusinessLogic in BugTracker and use the patterns I've found in my own code, and I know that it has improved my D2W applications considerably. Here is an example I use inside DocumentClazz // Class methods go here public static class DocumentClazz extends _Document._DocumentClazz { public EOFetchSpecification fetchSpecificationForWorkingGroupDocumentsForDeletion(WorkingGroup wg) { // selected working group, marked for Deletion EOFetchSpecification fs = Document.fetchSpec().qualify(Document.WORKING_GROUP.eq(wg).and(Document.IS_FOR_DELETION.eq(true))); return fs; } } Now when I need to get a list of documents from an action triggered from a navigation tab in my application I can use a method such as: // DELETION TAB public WOComponent listDocumentsForDeletion() { EOEditingContext ec = ERXEC.newEditingContext(); ec.lock(); WorkingGroup selectedWG = (WorkingGroup) WorkingGroup.wg(ec); try { EODatabaseDataSource ds = Document.clazz.newDatabaseDataSource(ec); EOFetchSpecification fs = Document.clazz.fetchSpecificationForWorkingGroupDocumentsForDeletion(selectedWG); ds.setFetchSpecification(fs); return (WOComponent) listPageNamed("ListDocumentsForDeletion", ds); } finally { ec.unlock(); } } David > > > On Dec 14, 2010, at 5:15 PM, David Holt wrote: > >> Hi Anjo, >> >> On 2010-12-14, at 1:34 PM, Anjo Krank wrote: >> >>> There is a reason why stuff in BT is done as it is. >>> >>> I.e. there is a People.class.setCurrentUser(People user) and >>> People.class.currentUser(EOEditingContext ec). Basically it puts all the >>> thread storage code (including the key) in People, which is, like, good >>> style? >> >> Absolutely agree. But it was difficult for me to wrap my head around >> ERXThreadStorage AND Clazz pattern AND ERCoreBusinessLogic at the same time. >> I was just trying to simplify it a little for Jesse. There is no question >> that all three together are much more powerful and useful. >> >>> >>> Also, ERXThreadStorage already handles EOs and faulting. >> >> >> Thanks, >> >> David >> >>> >>> Cheers, Anjo >>> >>> >>> >>> Am 14.12.2010 um 21:57 schrieb David Holt: >>> >>>> public static Person currentUser(EOEditingContext ec) { >>>> Person currentUser = currentUser(); >>>> if (currentUser != null && currentUser.editingContext() != ec) { >>>> EOEditingContext currentUserEc = >>>> currentUser.editingContext(); >>>> currentUserEc.lock(); >>>> try { >>>> Person localUser = (Person) >>>> ERXEOControlUtilities >>>> .localInstanceOfObject(ec, >>>> currentUser); >>>> currentUser = localUser; >>>> } finally { >>>> currentUserEc.unlock(); >>>> } >>>> } >>>> return currentUser; >>>> } >>>> >>> >>> _______________________________________________ >>> 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: >>> http://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com >>> >>> This email sent to programming...@mac.com >> >> _______________________________________________ >> 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: >> http://lists.apple.com/mailman/options/webobjects-dev/rparada%40mac.com >> >> This email sent to rpar...@mac.com >
_______________________________________________ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com