As I've mentioned before, edited comments are a PITA.  I took the time
to read Adrian's initial comment only to find the next email in my
inbox was the one below but I have no way of knowing what was changed.

Everyone, whenever possible please avoid editing comments and just
post a new correcting comment instead.

Thanks
Scott

2008/9/13 Adrian Crum (JIRA) <[EMAIL PROTECTED]>:
>
>    [ 
> https://issues.apache.org/jira/browse/OFBIZ-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12630717#action_12630717
>  ]
>
> [EMAIL PROTECTED] edited comment on OFBIZ-1956 at 9/12/08 5:19 PM:
> -------------------------------------------------------------
>
> As was discussed on the dev mailing list...
>
> The proposed recurrence system is based
> on a design proposed by Martin Fowler -
> http://martinfowler.com/apsupp/recurring.pdf. His design is quite old,
> so I updated it to support internationalization and I expanded it.
>
> The design is extremely flexible and it allows for arbitrarily complex
> recurring events. The design is based on temporal expressions. Each
> temporal expression could be considered a rule - like "every Monday" or
> "the 15th of the month."
>
> Temporal expressions can used alone or they can be combined in any of
> three "collection" expressions - Union, Intersection, and Difference. A
> date will match a Union collection if any of its expressions match
> (logical OR). A date will match an Intersection collection if all of its
> expressions match (logical AND). A date will match a Difference
> collection if it matches the "included" expression and doesn't match the
> "excluded" expression.
>
> Using Bilgin's Happy Hour promotion as an example:
>
> Intersection
> ..DayOfWeekRange(Monday, Friday)
> ..TimeOfDayRange(15:00, 17:00)
>
> Let's say we want to exclude St. Patrick's Day from the Happy Hour
> promotion:
>
> Difference
> ..Include
> ....Intersection
> ......DayOfWeekRange(Monday, Friday)
> ......TimeOfDayRange(15:00, 17:00)
> ....Exclude
> ......Intersection
> ........MonthRange(March, March)
> ........DayOfMonthRange(17, 17)
>
> A semi-monthly payday:
>
> Union
> ..DayOfMonthRange(1, 1)
> ..DayOfMonthRange(15, 15)
>
> Labor Day (US):
>
> Intersection
> ..MonthRange(September, September)
> ..DayInMonth(Monday, 1)
>
> A schedule is made up of schedule items. Each schedule item "points to"
> a temporal expression. It also has duration information, and an item
> type ID (meeting, appointment, etc).
>
> Schedules can be linked to parties/facilities/fixed assets through
> relationship entities.
>
> The implementation requires four new entities. I picture this being 
> introduced in the framework and we can gradually migrate the existing 
> recurrence code over to it. In addition, I
> could write a conversion routine to convert the existing Recurrence*
> entities over to the new ones.
>
>
>      was (Author: [EMAIL PROTECTED]):
>    As was discussed on the dev mailing list...
>
> The proposed recurrence system is based
> on a design proposed by Martin Fowler -
> http://martinfowler.com/apsupp/recurring.pdf. His design is quite old,
> so I updated it to support internationalization and I expanded it.
>
> The design is extremely flexible and it allows for arbitrarily complex
> recurring events. The design is based on temporal expressions. Each
> temporal expression could be considered a rule - like "every Monday" or
> "the 15th of the month."
>
> Temporal expressions can used alone or they can be combined in any of
> three "collection" expressions - Union, Intersection, and Difference. A
> date will match a Union collection if any of its expressions match
> (logical OR). A date will match an Intersection collection if all of its
> expressions match (logical AND). A date will match a Difference
> collection if it matches the "included" expression and doesn't match the
> "excluded" expression.
>
> Using Bilgin's Happy Hour promotion as an example:
>
> Intersection
>   DayOfWeekRange(Monday, Friday)
>   TimeOfDayRange(15:00, 17:00)
>
> Let's say we want to exclude St. Patrick's Day from the Happy Hour
> promotion:
>
> Difference
>   Include
>     Intersection
>       DayOfWeekRange(Monday, Friday)
>       TimeOfDayRange(15:00, 17:00)
>   Exclude
>     Intersection
>       MonthRange(March, March)
>       DayOfMonthRange(17, 17)
>
> A semi-monthly payday:
>
> Union
>   DayOfMonthRange(1, 1)
>   DayOfMonthRange(15, 15)
>
> Labor Day (US):
>
> Intersection
>   MonthRange(September, September)
>   DayInMonth(Monday, 1)
>
> A schedule is made up of schedule items. Each schedule item "points to"
> a temporal expression. It also has duration information, and an item
> type ID (meeting, appointment, etc).
>
> Schedules can be linked to parties/facilities/fixed assets through
> relationship entities.
>
> The implementation requires four new entities. I picture this being 
> introduced in the framework and we can gradually migrate the existing 
> recurrence code over to it. In addition, I
> could write a conversion routine to convert the existing Recurrence*
> entities over to the new ones.
>
>
>> Improved Recurring Events
>> -------------------------
>>
>>                 Key: OFBIZ-1956
>>                 URL: https://issues.apache.org/jira/browse/OFBIZ-1956
>>             Project: OFBiz
>>          Issue Type: Improvement
>>          Components: framework
>>    Affects Versions: SVN trunk
>>            Reporter: Adrian Crum
>>            Priority: Minor
>>
>> Come up with an improved recurring event implementation. Details in comments.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

Reply via email to