/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠN ich olas ĠB ily k Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . ac orn ui . build . util ĊĊ Ċ import Ġjava . io . File Ċ Ċ fun ĠFile . lastModified Recursive (): ĠLong Ġ{ Ċ ĉ var Ġlast Modified Ġ= Ġ 0 L Ċ ĉ for Ġ( i Ġin Ġwalk Top Down ()) Ġ{ Ċĉ ĉ if Ġ(! i . exists ()) Ġcontinue Ċĉ ĉ if Ġ( i . isDirectory ) Ġcontinue Ċĉ ĉ val Ġi LastModified Ġ= Ġi . lastModified () Ċĉ ĉ if Ġ( i LastModified Ġ> Ġlast Modified ) Ġ{ Ċĉĉ ĉ lastModified Ġ= Ġi LastModified Ċĉ ĉ } Ċ ĉ } Ċ ĉ return Ġlast Modified Ċ } Ċ Ċ fun ĠList < File >. lastModified Recursive (): ĠLong Ġ{ Ċ ĉ var Ġlast Modified Ġ= Ġ 0 L Ċ ĉ for Ġ( i Ġin Ġthis ) Ġ{ Ċĉ ĉ val Ġi LastModified Ġ= Ġi . lastModified Recursive () Ċĉ ĉ if Ġ( i LastModified Ġ> Ġlast Modified ) Ġ{ Ċĉĉ ĉ lastModified Ġ= Ġi LastModified Ċĉ ĉ } Ċ ĉ } Ċ ĉ return Ġlast Modified Ċ } Ċ Ċ fun Ġsources Are New er ( sources : ĠList < File >, Ġtargets : ĠList < File >): ĠBoolean Ġ{ Ċ ĉ return Ġsources . lastModified Recursive () Ġ> Ġtargets . lastModified Recursive () Ċ } Ċ Ċ fun Ġsources Are New er ( sources : ĠList < File >, Ġtarget : ĠFile ): ĠBoolean Ġ{ Ċ ĉ return Ġsources . lastModified Recursive () Ġ> Ġtarget . lastModified Recursive () Ċ } Ċ Ċ fun Ġsources Are New er ( source : ĠFile , Ġtarget : ĠFile ): ĠBoolean Ġ{ Ċ ĉ return Ġsource . lastModified Recursive () Ġ> Ġtarget . lastModified Recursive () Ċ } Ċ Ċ fun ĠFile . copy If New er ( dest : ĠFile ): ĠBoolean Ġ{ Ċ ĉ if Ġ(! dest . exists () Ġ|| Ġlast Modified () Ġ> Ġdest . lastModified ()) Ġ{ Ċĉ ĉ copy To ( dest , Ġoverwrite Ġ= Ġtrue ) Ċĉ ĉ return Ġtrue Ċ ĉ } Ċ ĉ return Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠDeletes Ġthis Ġfolder Ġrecursively Ġthen Ġre creates Ġthe Ġdirectory . Ċ Ġ*/ Ċ fun ĠFile . clean () Ġ{ Ċ ĉ delete Re cursively () Ċ ĉ mkdir s () Ċ } Ċ Ċ /** Ċ Ġ* ĠSets Ġthe Ġlast Ġmodified Ġdate Ġto Ġthe Ġcurrent Ġtime . Ċ Ġ*/ Ċ fun ĠFile . touch () Ġ{ Ċ ĉ set LastModified ( System . currentTimeMillis ()) Ċ }