くり返しファンクションを使用して変換元ノードから変換先ノードへマッピングした場合,そのくり返しファンクションは,自動的に子孫ノードのマッピング元のくり返し対象として対応づけられます。また,くり返しファンクションやマッピング線を削除して,あるノードのくり返しを取り消したとします。その場合,その子孫ノードには,くり返しを取り消したノードの祖先ノードに設定されているくり返しファンクションが,自動的にマッピング元のくり返し対象として対応づけられます。これをくり返しの依存対象と言います。
くり返しの依存対象は次の場合に設定されます。
それぞれの場合のくり返し依存対象が対応づけられるタイミングについて説明します。
あるノードにくり返しを設定したあと,その子孫ノードをマッピングした場合の,くり返し依存対象が対応づけられるタイミングを次に示します。
図7-21 くり返しファンクションを使用したマッピング
まず,くり返しファンクションを使用して,変換元ノードAから変換先ノードBへマッピングします。
次に,変換元ノードAの子孫ノードであるノードCから,変換先ノードBの子孫ノードであるノードDへマッピングします。
図7-22 くり返し依存対象が対応づけられるタイミング(子孫ノードにファンクションがない場合)
ノードDに接続されたとき,子孫ノードに対してくり返し依存対象が自動的に設定されます。図7-22の場合,子孫ノードDのマッピング元のくり返し依存対象に「loop1」が設定されます。
子孫の変換元ノードから変換先ノードへのマッピングで複数のファンクションを使用した場合は,変換先ノードに接続された時点でくり返し依存対象が自動的に設定されます。
図7-23 くり返し依存対象が対応づけられるタイミング(子孫のノードに複数のファンクションがある場合)
あるノードをマッピングさせたあと,その祖先ノードにくり返しを設定した場合の,くり返し依存対象が対応づけられるタイミングを次に示します。
図7-24 くり返しファンクションを使用しないマッピング
まず,ある変換元ノードAから変換先ノードBへマッピングします。
次に,変換元ノードAの祖先ノードであるノードCから,変換先ノードBの祖先ノードであるノードDへマッピングします。
図7-25 くり返し依存対象が対応づけられるタイミング(祖先ノードのマッピングをあとにした場合)
ノードCからノードDにマッピングしたとき,子孫ノードに対してくり返し依存対象が自動的に設定されます。図7-25の場合,子孫ノードBに対してくり返し依存対象「loop1」が設定されます。
祖先ノードにくり返しが設定されているノードのくり返しを取り消した場合の,くり返し依存対象が対応づけられるタイミングを次に示します。
図7-26 くり返しファンクションを使用したマッピング,およびくり返しファンクションを使用しないマッピング
まず,ある変換元ノードAから変換先ノードBへマッピングします。
次に,くり返しファンクションを使用して,変換元ノードAの祖先ノードであるノードCから,変換先ノードBの祖先ノードであるノードDへマッピングします。
そのあと,くり返しファンクションを使用して,変換元ノードAおよび変換元ノードCの祖先ノードである変換元ノードEから,変換先ノードBおよび変換先ノードDの祖先ノードである変換先ノードFへマッピングします。
図7-27 くり返し依存対象が対応づけられるタイミング(マッピングを取り消した場合)
ノードCからノードDへのマッピングを取り消したとき,マッピングを取り消したノードの子孫ノードに対して,くり返し依存対象が自動的に設定されます。図7-27の場合,子孫ノードBに対してくり返し依存対象「loop1」が設定されます。