• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Writing maintainable and extendable D2W rules
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Writing maintainable and extendable D2W rules


  • Subject: Writing maintainable and extendable D2W rules
  • From: Szántai Károly <email@hidden>
  • Date: Thu, 12 Nov 2009 16:19:57 +0100

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@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Writing maintainable and extendable D2W rules
      • From: Mark Wardle <email@hidden>
  • Prev by Date: Getting the max value for an entity's attribute
  • Next by Date: Re: Getting the max value for an entity's attribute
  • Previous by thread: Re: Getting the max value for an entity's attribute
  • Next by thread: Re: Writing maintainable and extendable D2W rules
  • Index(es):
    • Date
    • Thread