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;
| *]
| }
|
|