Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method SetRecurrencePatternMonthly ( 
 | 
  Number dayOfMonth_i 
 | 
) as LibCal_Event 
 | 
{ 
 | 
  Description: 'Set a recurrence pattern that recurs every month on a specific day.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Use a FeedbackObject the collect the validation feedback. 
 | 
    feedback := LibCal_Validate::Event_Pattern_Monthly( dayOfMonth_i, this.GetEventInfo() ); 
 | 
     
 | 
    // Process the feedback that has been registered by the validation (if any). 
 | 
    LibCal_Util::ProcessFeedbackObject( feedback ); 
 | 
     
 | 
    // The below is only executed when no validation errors were encountered. 
 | 
    // Check if a new RecurrencePattern must be created. 
 | 
    pattern      := guard( this.RecurrencePattern().astype( LibCal_RecurrencePatternMonthly ), null( LibCal_RecurrencePatternMonthly ) ); 
 | 
    changeOfType := isnull( pattern ); 
 | 
     
 | 
    isChanged := changeOfType             // There was no pattern yet, or it was not a Monthly pattern. 
 | 
              or pattern.IsDay() <> true  // The existing Monthly pattern was not a specific day. 
 | 
              or pattern.Day()   <> dayOfMonth_i; 
 | 
     
 | 
    if( isChanged ) 
 | 
    { 
 | 
      // Create the RecurrencePattern. 
 | 
      LibCal_RecurrencePatternMonthly::Create( this, dayOfMonth_i ); 
 | 
      this.IsChanged( true ); 
 | 
     
 | 
      // Initialize the RecurrencePeriod of the LeadingParticipation if necessary. 
 | 
      this.InitializeRecurrencePeriod(); 
 | 
    } 
 | 
     
 | 
    // Make the API fluent. 
 | 
    return this; 
 | 
  *] 
 | 
} 
 |