package Ġcom . cogn if ide . gradle . a em . common . file . transfer Ċ Ċ import Ġjava . io . File Ċ import Ġorg . apache . commons . io . Filename Utils Ċ Ċ interface ĠFile Transfer Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUnique Ġidentifier . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhen Ġenabled , Ġtransfer Ġwill Ġbe Ġconsidered Ġwhen Ġfinding Ġtransfer Ġhandling Ġparticular ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġenabled : ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġif Ġoperations Ġusing Ġthis Ġtransfer Ġcould Ġbe Ġdone Ġin Ġparallel . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġparallel able : ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġsupports Ġparticular ĠURL ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhandles ( file Url : ĠString ): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDown loads Ġfile Ġwith Ġgiven Ġname Ġfrom Ġdirectory Ġavailable Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload From ( dir Url : ĠString , ĠfileName : ĠString , Ġtarget : ĠFile ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDown loads Ġfile Ġfrom Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload ( file Url : ĠString , Ġtarget : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( dir Url , ĠfileName ) Ġ= Ġsplit File Url ( file Url ) ĊĠĠĠĠĠĠĠ Ġdownload From ( dir Url , ĠfileName , Ġtarget ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDown loads Ġfile Ġfrom Ġspecified ĠURL Ġto Ġtemporary Ġdirectory Ġwith Ġpre serving Ġfile Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload ( file Url : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDown loads Ġfile Ġfrom Ġspecified ĠURL Ġto Ġspecified Ġdirectory Ġwith Ġpre serving Ġfile Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload To ( file Url : ĠString , Ġdir : ĠFile ): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( dir , ĠFilename Utils . getName ( file Url )). apply Ġ{ Ġdownload ( file Url , Ġthis ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUp loads Ġfile Ġto Ġdirectory Ġavailable Ġat Ġspecified ĠURL Ġand Ġset Ġgiven Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupload To ( dir Url : ĠString , ĠfileName : ĠString , Ġsource : ĠFile ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUp loads Ġfile Ġto Ġdirectory Ġavailable Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupload To ( dir Url : ĠString , Ġsource : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġsource . name ĊĊĠĠĠĠĠĠĠ Ġupload To ( dir Url , ĠfileName , Ġsource ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUp loads Ġfile Ġto Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupload ( file Url : ĠString , Ġsource : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( dir Url , ĠfileName ) Ġ= Ġsplit File Url ( file Url ) ĊĠĠĠĠĠĠĠ Ġupload To ( dir Url , ĠfileName , Ġsource ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġfile Ġof Ġgiven Ġname Ġin Ġdirectory Ġavailable Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete From ( dir Url : ĠString , ĠfileName : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġfile Ġavailable Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete ( file Url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( dir Url , ĠfileName ) Ġ= Ġsplit File Url ( file Url ) ĊĠĠĠĠĠĠĠ Ġdelete From ( dir Url , ĠfileName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLists Ġfiles Ġin Ġdirectory Ġavailable Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlist ( dir Url : ĠString ): ĠList < File Entry > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġall Ġfiles Ġin Ġdirectory Ġavailable Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtruncate ( dir Url : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġfile Ġat Ġspecified ĠURL Ġexists . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexists ( file Url : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( dir Url , ĠfileName ) Ġ= Ġsplit File Url ( file Url ) ĊĠĠĠĠĠĠĠ Ġreturn Ġexists ( dir Url , ĠfileName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġfile Ġwith Ġgiven Ġname Ġexists Ġin Ġdirectory Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexists ( dir Url : ĠString , ĠfileName : ĠString ): ĠBoolean Ġ= Ġstat ( dir Url , ĠfileName ) Ġ!= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġfile Ġstatus Ġof Ġgiven Ġname Ġin Ġdirectory Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstat ( dir Url : ĠString , ĠfileName : ĠString ): ĠFile Entry ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġfile Ġstatus Ġat Ġspecified ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstat ( file Url : ĠString ): ĠFile Entry ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( dir Url , ĠfileName ) Ġ= Ġsplit File Url ( file Url ) ĊĠĠĠĠĠĠĠ Ġreturn Ġstat ( dir Url , ĠfileName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠĠ Ġfun Ġsplit File Url ( file Url : ĠString ): ĠPair < String , ĠString > Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Url . contains (" :// ") Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( protocol , Ġpath ) Ġ= Ġfile Url . split (" :// ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Url Ġ= Ġpath . take If Ġ{ Ġit . contains ("/") Ġ} ?. substring Before Last ("/ "). or Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġpath . substring After Last ("/") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(" $ protocol :// $ dir Url ") Ġto ĠfileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Url Ġ= Ġfile Url . substring Before Last ("/") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġfile Url . substring After Last ("/") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdir Url Ġto ĠfileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ