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
37
38
39
40
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method Sequencer (LibOpt_Components children, String iterator_name) as LibOpt_IteratorForEachLink 
 |  { 
 |    Description: 
 |    [* 
 |      This method is deprecated. It will be removed in the next major version upgrade. Use `IteratorForEachLink` instead. 
 |       
 |      Created an `LibOpt_IteratorForEachLink` component and forks it to the given child components, in the order given. 
 |      The given children must all be from the same run. In that run, the new component will be created. 
 |    *] 
 |    TextBody: 
 |    [* 
 |      run := select( children, Elements.Run, run, true ); 
 |       
 |      assert( not isnull( run ), 'None of the children is owned by a `LibOpt_Run`.' ); 
 |      if( LibOpt_Utility::IsServerRunningInDebugMode() ) 
 |      { 
 |        rightchild := select( children, Elements, child, true, child.Run() = run ); 
 |        wrongchild := select( children, Elements, child, true, child.Run() <> run ); 
 |        assert( isnull( wrongchild ), 
 |                'The children do not belong to the same `LibOpt_Run`: Child', 
 |                rightchild.Name(), 
 |                'belongs to run nr.', 
 |                rightchild.Run().RunNr(), 
 |                'while child', 
 |                wrongchild.Name(), 
 |                'belongs to run nr.', 
 |                wrongchild.Run().RunNr() ); 
 |      } 
 |       
 |      iterator := this.IteratorForEachLink( run, iterator_name ); 
 |      traverse( children, Elements, child ) 
 |      { 
 |        iterator.Fork( child ); 
 |      } 
 |       
 |      return iterator; 
 |    *] 
 |  } 
 |  
  |