/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 . android . tools . idea . tests . gui . asset studio Ċ Ċ import Ġcom . android . test utils . filesystem diff . Create Directory Action Ċ import Ġcom . android . test utils . filesystem diff . Create File Action Ċ import Ġcom . android . test utils . filesystem diff . Script Ċ import Ġjava . io . IOException Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Path Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġlist Ġof Ġcreated Ġfiles Ġaccording Ġto Ġa Ġ[ script ]. Ċ Ġ* ĠThe Ġmethod Ġiter ates Ġthrough Ġthe Ġ[ script . actions ], Ġselects Ġcreated Ġfiles Ġand Ġreturns Ġa Ġlist Ġof Ġtheir Ġpaths Ġ( relative Ġto Ġ[ root ]). Ċ Ġ* Ċ Ġ* Ġ@ param Ġroot Ġdirectory Ġto Ġlook Ġinto Ċ Ġ* Ġ@ param Ġscript Ġa Ġ[ Script ] Ġwith Ġ[ Create File Action ] s Ġand Ġ[ Create Directory Action ] Ċ Ġ* Ġ@ param Ġfilter Ġoptional Ġpredicate Ġfor Ġfiltering Ġof Ġthe Ġreturned Ġfiles Ċ Ġ*/ Ċ fun Ġget New Files ( root : ĠPath , Ġscript : ĠScript , Ġfilter : Ġ( Path ) Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}): ĠList < String > Ġ{ ĊĠ Ġval Ġnew Files Ġ= Ġmutable ListOf < String >() ĊĊĠ Ġfun Ġadd RelativePath Condition ally ( path ToAdd : ĠPath ) Ġ{ ĊĠĠĠ Ġif Ġ( filter ( path ToAdd )) Ġ{ ĊĠĠĠĠĠ Ġnew Files . add ( root . rel ativ ize ( path ToAdd ). toString (). replace ('\\ ', Ġ'/ ')) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfor Ġ( action Ġin Ġscript . actions ) Ġ{ ĊĠĠĠ Ġif Ġ( action Ġis ĠCreateFile Action ) Ġ{ ĊĠĠĠĠĠ Ġadd RelativePath Condition ally ( action . source Entry . path ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( action Ġis ĠCreate Directory Action ) Ġ{ ĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠFiles . walk ( action . source Entry . path ). use Ġ{ Ġstream Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġstream . filter Ġ{ ĠFiles . is Regular File ( it ) Ġ}. forEach (:: add RelativePath Condition ally ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcatch Ġ( ex : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( ex ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġreturn Ġnew Files Ċ } Ċ