For
Forコンポーネントは、FortranのDoループのように指定されたインデックス値に応じて下位コンポーネントを繰り返し実行します。
Forコンポーネントに設定できるプロパティは以下のとおりです。
start
インデックスの始値を設定します。
end
インデックスの終値を設定します。
step
インデックス更新時の更新幅を設定します。
インデックス値の参照方法について
ループ実行中に下位コンポーネントから現在のインデックス値を利用する場合は、$WHEEL_CURRENT_INDEX 環境変数で参照可能です。
number of instances to keep
各インデックスで処理を行なった時のディレクトリを最大何個まで残すかを指定します。 無指定のときは、全てのディレクトリが保存されます。
詳しくは後述のForコンポーネント実行時の挙動で説明します。
Forコンポーネント実行時の挙動
Forコンポーネントが初めて実行されるとき、コンポーネントのディレクトリはインデックスの値を末尾につけた名前でコピーされます。 コピーされたディレクトリ内の下位コンポーネントの実行が全て終了すると、新しいインデックス値が計算されその値に基いてさらにディレクトリがコピーされます。
この処理は順次繰り返し実行され、インデックスの値が終値を超えるまで続けられます。 終値を超えた時点のディレクトリは元のディレクトリにコピーされ、Forコンポーネントの処理は終了します。 なお、stepにマイナスの値を設定した場合も始値 > 終値 となっていれば正常に実行されます。 この場合はインデックスが終値を下回ると実行終了となります。
例えば、start=1, end=3, step=2と設定された for
というコンポーネントは次のように処理されます。
for
ディレクトリをfor_1
ディレクトリとしてコピーするfor_1
ディレクトリ内のコンポーネントを順次実行する- index計算 1+2 = 3 => 終値の3と等しいので、次のループを実行する
for_1
ディレクトリをfor_3
ディレクトリとしてコピーするfor_3
ディレクトリ内のコンポーネントを順次実行する- index計算 3+2 = 5 => 終値の3を超えているので、終了処理を行なう
for_3
ディレクトリをfor
ディレクトリとしてコピーする
number of instance to keepの値が0以外に設定されていた場合は、4,7の処理を実行後に設定された数を超える古いディレクトリ(for_1
やfor_3
など)を削除します。