package Ġme . anno . graph . types . flow . control Ċ Ċ import Ġme . anno . graph . Node Output Ċ import Ġme . anno . graph . types . Flow Graph Ċ Ċ class ĠFor Node Ġ: ĠFixed Control Flow Node (" For ", ĠlistOf (" Flow ", Ġ" Long ", Ġ" Long ", Ġ" Long "), ĠlistOf (" Flow ", Ġ" Long ", Ġ" Flow ")) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( graph : ĠFlow Graph ): ĠNode Output Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinputs Ġ= Ġinputs !! ĊĠĠĠĠĠĠĠ Ġval ĠstartIndex Ġ= Ġgraph . getValue ( inputs [ 1 ]) Ġas ĠLong ĊĠĠĠĠĠĠĠ Ġval Ġend Index Ġ= Ġgraph . getValue ( inputs [ 2 ]) Ġas ĠLong ĊĠĠĠĠĠĠĠ Ġval Ġincrement Ġ= Ġgraph . getValue ( inputs [ 3 ]) Ġas ĠLong ĊĠĠĠĠĠĠĠ Ġval Ġrunning Ġ= Ġget Output Nodes ( 0 ). others . map NotNull Ġ{ Ġit . node Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( running . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin ĠstartIndex Ġuntil Ġend Index Ġstep Ġincrement ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( increment Ġ<= Ġ 0 L ) Ġthrow ĠIllegalStateException (" Step Ġsize Ġmust Ġbe Ġ> Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Output ( index , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph . requestId () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnew Ġid , Ġbecause Ġit 's Ġa Ġnew Ġrun , Ġand Ġwe Ġneed Ġto Ġinvalidate Ġall Ġpreviously Ġcalculated Ġvalues ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtheoret ically Ġit Ġwould Ġbe Ġenough Ġto Ġjust Ġinvalidate Ġthe Ġones Ġin Ġthat Ġsub graph ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe 'd Ġhave Ġto Ġcalculate Ġthat Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph . execute Nodes ( running ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}// Ġelse Ġdone ĊĠĠĠĠĠĠĠ Ġreturn Ġget Output Nodes ( 2 ) ĊĠĠĠ Ġ} Ċ Ċ }