Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method OnDatasetConstructed 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Migration method when loading datasets with a`LibOpt_IteratorUntil` that was created in a previous version of LibOpt. 
 | 
    This method will be removed in the next-next minor release (it needsto exist only in the iterator-refactoring transition model release). 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    // mbr23 Jun-26-2020 (created) 
 | 
    if( not isnull( this.Next() ) ) 
 | 
    { 
 | 
      // we're an old dataset. Let's upgrade to the new Iterator structure: 
 | 
      next_destination := this.Next().Destination(); 
 | 
      next_linkid := this.Next().InternalIdentfier(); 
 | 
       
 | 
      newlink := construct( LibOpt_LinkIteratorSingle, 
 | 
                            Destination := next_destination, 
 | 
                            InternalIdentfier := next_linkid ); 
 | 
      // steal the task transporter from the old link: 
 | 
      newlink.TaskTransporter( relmove, this.Next().TaskTransporter() ); 
 | 
       
 | 
      // rewire all UIGraphArcs to the new link: 
 | 
      traverse( this.Next(), UIGraphArc, arc ) 
 | 
      { 
 | 
        arc.Link( relset, newlink ); 
 | 
      } 
 | 
       
 | 
      this.Next().Delete(); 
 | 
      this.NextByIteratorParent( relset, &newlink ); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |