package Ġorg . jav acs . kt . progress Ċ Ċ import Ġjava . io . Closeable Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ /** ĠA Ġfacility Ġfor Ġemit ting Ġprogress Ġnotifications . Ġ*/ Ċ interface ĠProgress Ġ: ĠClose able Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġthe Ġprogress Ġpercentage . ĠThe ĊĠĠĠĠ Ġ* Ġvalue Ġshould Ġbe Ġin Ġthe Ġrange Ġ[ 0 , Ġ 1 0 0 ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate ( message : ĠString ? Ġ= Ġnull , Ġpercent : ĠInt ? Ġ= Ġnull ) ĊĊĠĠĠ Ġobject ĠNone Ġ: ĠProgress Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġupdate ( message : ĠString ?, Ġpercent : ĠInt ?) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclose () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠFactory Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġprogress Ġlistener Ġwith ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġgiven Ġlabel . ĠThe Ġlabel Ġis Ġintended ĊĠĠĠĠĠĠĠĠ Ġ* Ġto Ġbe Ġhuman - readable . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( label : ĠString ): ĠCompletableFuture < Progress > ĊĊĠĠĠĠĠĠĠ Ġobject ĠNone Ġ: ĠFactory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate ( label : ĠString ): ĠCompletableFuture < Progress > Ġ= ĠCompletableFuture . completed Future ( Progress . None ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ