admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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' }
}