package Ġnet . ig or bre jc . time slack Ċ Ċ import Ġcom . google . common . collect . ImmutableList Ċ Ċ data Ġclass ĠFlow ( ĊĠĠĠ Ġval Ġactivities : ĠList < Flow Activity > Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġcreate Activities Log ( flow StartTime : ĠSlack er Time ): ĠActiv ities Log Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActiv ities Log ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivities . count (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableList . of ( flow StartTime )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Flow ( startTime : ĠSlack er Time ): ĠFlow Log Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsteps Ġ= Ġactivities . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFixed Activity Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableList . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFixed Activity Step ( activity . activity Name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDynamic Activity Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableList . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDynamic Activity Forward Step ( activity . activity Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDynamic Activity Return Step ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . activity Name Ġ+ Ġ" Ġ( return ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġtest Ġfor Ġassert ing Ġthe ĠstartTime Ġwas Ġused Ġhere ĊĠĠĠĠĠĠĠ Ġreturn ĠFlow Log ( steps . flatten (), ĠImmutableList . of ( Sl acker Time . of ( 1 , Ġ 1 ))) ĊĠĠĠ Ġ} Ċ } Ċ