Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Update ( 
 | 
  Date startDate_i, 
 | 
  Date endDate_i 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // First validate the dates. 
 | 
    // Use a FeedbackObject to collect the validation feedback. 
 | 
    feedback := LibCal_Validate::FeedbackObject(); 
 | 
     
 | 
    LibCal_Validate::Participation_StartDate_EndDate( startDate_i, endDate_i ); 
 | 
     
 | 
    // 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. 
 | 
    // Register if there are changes. 
 | 
    isChanged := this.StartDate() <> startDate_i 
 | 
              or this.EndDate()   <> endDate_i; 
 | 
     
 | 
    if( isChanged ) 
 | 
    { 
 | 
      this.IsChanged( true ); 
 | 
    } 
 | 
     
 | 
    this.StartDate( startDate_i ); 
 | 
    this.EndDate(   endDate_i   ); 
 | 
     
 | 
    // Also update the Subscriptions 
 | 
    traverse( this, Subscription, subscription ) 
 | 
    { 
 | 
      subscription.StartDate( startDate_i ); 
 | 
      subscription.EndDate(   endDate_i   ); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Extensible' } 
 | 
} 
 |