Hi, The answer is to use Convention over Configuration.
I've been meaning to add this to the wiki for awhile - on how to do this with D2W. Here it is: http://wiki.objectstyle.org/confluence/display/WO/How+to+Write+D2W+Rules Thanks, Ravi On 13/11/2009, at 5:04 AM, [email protected] wrote: > Message: 4 > Date: Thu, 12 Nov 2009 16:19:57 +0100 > From: Sz?ntai K?roly <[email protected]> > Subject: Writing maintainable and extendable D2W rules > To: [email protected] > Message-ID: <[email protected]> > Content-Type: text/plain; charset=ISO-8859-2; format=flowed; delsp=yes > > Hi, > > What is the best practices for writing good, _maintainable_ and > extendable D2W rules? Especially in the left-hand side. > > What do I mean? Let's see a very simple example. Which of the > following is more maintainable, more extendable? > > This? > > 100: entity.name = 'Father' and task = 'edit' and propertyKey = > 'firstName' => componentName = "D2WEditString" > 100: entity.name = 'Father' and task = 'edit' and propertyKey = > 'lastName' => componentName = "D2WEditString" > 100: entity.name = 'Mother' and task = 'edit' and propertyKey = > 'firstName' => componentName = "D2WEditString" > 100: entity.name = 'Mother' and task = 'edit' and propertyKey = > 'lastName' => componentName = "D2WEditString" > 100: entity.name = 'Child' and task = 'edit' and propertyKey = > 'firstName' => componentName = "D2WEditString" > 100: entity.name = 'Child' and task = 'edit' and propertyKey = > 'lastName' => componentName = "D2WEditString" > > Or this? > > 100: entity.name = 'Father' and task = 'edit' and (propertyKey = > 'firstName' or propertyKey = 'lastName') => componentName = > "D2WEditString" > 100: entity.name = 'Mother' and task = 'edit' and (propertyKey = > 'firstName' or propertyKey = 'lastName') => componentName = > "D2WEditString" > 100: entity.name = 'Child' and task = 'edit' and (propertyKey = > 'firstName' or propertyKey = 'lastName') => componentName = > "D2WEditString" > > Or this? > > 100: entity.name = 'Father' and task = 'edit' and propertyKey like > '*Name' => componentName = "D2WEditString" > 100: entity.name = 'Mother' and task = 'edit' and propertyKey like > '*Name' => componentName = "D2WEditString" > 100: entity.name = 'Child' and task = 'edit' and propertyKey like > '*Name' => componentName = "D2WEditString" > > Or this? > > 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name > = 'Child') and task = 'edit' and propertyKey = 'firstName' => > componentName = "D2WEditString" > 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name > = 'Child') and task = 'edit' and propertyKey = 'lastName' => > componentName = "D2WEditString" > > Or this? > > 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name > = 'Child') and task = 'edit' and (propertyKey = 'firstName' or > propertyKey = 'lastName') => componentName = "D2WEditString" > > Or this? > > 100: (entity.name = 'Father' or entity.name = 'Mother' or entity.name > = 'Child') and task = 'edit' and propertyKey like '*Name' => > componentName = "D2WEditString" > > Or this? > > 100: (entity.name like '*ther' or entity.name = 'Child') and task = > 'edit' and propertyKey like '*Name' => componentName = "D2WEditString" > > > I think all of them have pros and cons. The first one is very simple > and clean. The last one is very tricky and compact. > > What do you think? > > > Thanks > > Károly > > P.S: Is it possible to speak about "rule refactoring"?
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
