/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠK aid an ĠG ust ave Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġme . kg ust ave . kom odo Ċ Ċ /** Ċ Ġ* ĠFile Ġwatcher Ġwhich Ġlist ens Ġand Ġprovides Ġ[ File Events ][ File Event ] Ġwhen Ġcertain Ġactions Ġare Ġprovided Ġin Ċ Ġ* Ġspecific Ġareas Ġof Ġthe Ġfile - system . Ċ Ġ* Ċ Ġ* ĠThis Ġcan Ġbe Ġconfigured Ġto Ġmonitor Ġa Ġsingle Ġfile Ġor Ġan Ġentire Ġfile Ġtree : Ċ Ġ* Ċ Ġ* Ġ``` kotlin Ċ Ġ* Ġval Ġfile Ġ= ĠFile (" file . txt ") Ċ Ġ* Ċ Ġ* Ġval Ġwatcher Ġ= ĠFile Watcher ( file ) Ġ{ Ċ Ġ* ĠĠĠĠ Ġwatch Cre ations Ġ= Ġfalse Ċ Ġ* ĠĠĠĠ Ġwatch Mod ifications Ġ= Ġtrue Ċ Ġ* ĠĠĠĠ Ġwatch De letions Ġ= Ġtrue Ċ Ġ* Ġ} Ċ Ġ* Ċ Ġ* Ġval Ġevent Ġ= Ġfile . poll () Ċ Ġ* Ċ Ġ* Ġ// Ġ... Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* ĠThis Ġinterface Ġalso Ġimplements Ġthe Ġ[ Sequence ] Ġabstract Ġtype , Ġallowing Ġit Ġto Ġbe Ġse quent ially Ġiter ated . Ċ Ġ* Ċ Ġ* ĠOperations Ġinvol ving Ġiteration Ġdrain Ġthe Ġqueue Ġfor Ġall Ġavailable Ġevents , Ġand Ġshould Ġnot Ġbe Ġused Ġin Ġcases Ċ Ġ* Ġinvol ving Ġmult ith readed Ġaccess Ġof Ġinstances Ġof Ġthis Ġtype . Ċ Ġ* Ċ Ġ* ĠWith Ġthat Ġalso Ġkeep Ġin Ġmind Ġthis Ġimplementation Ġis Ġmerely Ġa Ġqueue - like Ġwrapper Ġfor Ġthe Ġ[ java . nio . file . Watch Service ] Ċ Ġ* ĠAPI . ĠThe Ġstandard Ġimplementation Ġdoes Ġnot Ġimplement Ġany Ġmult ith reading Ġor Ġconcurrency Ġbeyond Ġusing Ġa Ġqueue Ġto Ġstore Ċ Ġ* Ġpol led Ġevents , Ġand Ġshould Ġbe Ġextern ally Ġsynchronized Ġif Ġthread Ġsafety Ġis Ġrequired . Ċ Ġ* Ċ Ġ* Ġ@ see Ġme . kg ust ave . kom odo . File Event Ċ Ġ*/ Ċ @ Experimental File Watcher Api Ċ interface ĠFile Watcher : ĠAuto Closeable , ĠSequence < File Event > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhether Ġor Ġnot Ġthis ĠFile Watcher Ġis Ġopen . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhen Ġ` false ` Ġcalls Ġto Ġ[ poll ] Ġand Ġ[ queue ] Ġwill Ġresult ĊĠĠĠĠ Ġ* Ġin Ġan Ġ[ IllegalStateException ] Ġbeing Ġthrown . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠisOpen : ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPol ls Ġthe Ġnext Ġavailable Ġ[ File Event ] Ġfrom Ġthis ĠFile Watcher , ĊĠĠĠĠ Ġ* Ġreturning Ġit Ġif Ġpresent , Ġotherwise Ġreturning Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġ[ isOpen ] Ġis Ġ` false `, Ġthis Ġfunction Ġwill Ġthrow Ġan ĊĠĠĠĠ Ġ* Ġ[ IllegalStateException ] Ġwhen Ġcalled . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġnext Ġavailable ĠFile Event Ġor Ġ` null `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpoll (): ĠFile Event ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġentire Ġremaining Ġqueue Ġof Ġ[ File Events ][ File Event ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġ[ isOpen ] Ġis Ġ` false `, Ġthis Ġfunction Ġwill Ġthrow Ġan ĊĠĠĠĠ Ġ* Ġ[ IllegalStateException ] Ġwhen Ġcalled . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġentire Ġremaining Ġqueue Ġof ĠFile Events . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġqueue (): ĠList < File Event > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFl ushes Ġthe Ġremaining Ġqueue Ġof Ġ[ File Events ][ File Event ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġoperation Ġdoes Ġnothing Ġif Ġthe Ġqueue Ġis Ġempty , Ġor ĊĠĠĠĠ Ġ* Ġthis ĠFile Watcher Ġis Ġclosed . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġflush () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfigur ations Ġfor Ġa Ġnew Ġ[ File Watcher ] Ġinstance . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcan Ġbe Ġused Ġto Ġfilter Ġout Ġthe Ġ[ types Ġof Ġevents ][ File Event . Type ] ĊĠĠĠĠ Ġ* Ġreceived Ġby Ġa ĠFile Watcher . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġall Ġtypes Ġof Ġevents Ġare Ġreceived . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠConfig Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWhether Ġthe Ġ[ File Watcher ] Ġshould Ġwatch Ġfor Ġ[ File Events ][ File Event ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthe Ġ[ CREATE ][ File Event . Type . CREATE ] Ġevent Ġtype . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġwatch Cre ations Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWhether Ġthe Ġ[ File Watcher ] Ġshould Ġwatch Ġfor Ġ[ File Events ][ File Event ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthe Ġ[ MO DIFY ][ File Event . Type . MO DIFY ] Ġevent Ġtype . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġwatch Mod ifications Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWhether Ġthe Ġ[ File Watcher ] Ġshould Ġwatch Ġfor Ġ[ File Events ][ File Event ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthe Ġ[ DELETE ][ File Event . Type . DELETE ] Ġevent Ġtype . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġwatch De letions Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ