package Ġau . com . di us . p act . provider . junit . loader Ċ Ċ import Ġau . com . di us . p act . core . model . Default P act Reader Ċ import Ġau . com . di us . p act . core . model . Directory Source Ċ import Ġau . com . di us . p act . core . model . Interaction Ċ import Ġau . com . di us . p act . core . model . P act Ċ import Ġjava . io . File Ċ import Ġjava . net . URL Ċ import Ġjava . net . URL Decoder Ċ Ċ /** Ċ Ġ* ĠOut - of - the - box Ġimplementation Ġof Ġ[ P act Loader ] Ċ Ġ* Ġthat Ġloads Ġp acts Ġfrom Ġeither Ġa Ġsub folder Ġof Ġproject Ġresource Ġfolder Ġor Ġa Ġdirectory Ċ Ġ*/ Ċ class ĠP act Folder Loader < I >( private Ġval Ġpath : ĠFile ) Ġ: ĠP act Loader Ġwhere ĠI Ġ: ĠInteraction Ġ{ ĊĠ Ġprivate Ġval Ġp act Source : ĠDirectory Source < I > Ġ= ĠDirectory Source ( path ) ĊĊĠ Ġconstructor ( path : ĠString ) Ġ: Ġthis ( File ( path )) ĊĊĠ Ġ@ Deprecated (" Use ĠP act Url Loader Ġfor ĠURLs Ġ( will Ġbe Ġremoved Ġin Ġ 4 . 0 . x )") ĊĠ Ġconstructor ( path : ĠURL ?) Ġ: Ġthis ( if Ġ( path Ġ== Ġnull ) Ġ"" Ġelse Ġpath . path ) ĊĊĠ Ġconstructor ( p act Folder : ĠP act Folder ) Ġ: Ġthis ( p act Folder . value ) ĊĊĠ Ġoverride Ġfun Ġdescription () Ġ= Ġ" Directory (${ p act Source . dir })" ĊĊĠ Ġoverride Ġfun Ġload ( provider Name : ĠString ): ĠList < P act < I >> Ġ{ ĊĠĠĠ Ġval Ġp acts Ġ= Ġmutable ListOf < P act < I >>() ĊĠĠĠ Ġval Ġp act Folder Ġ= Ġresolve Path () ĊĠĠĠ Ġval Ġfiles Ġ= Ġp act Folder . list Files Ġ{ Ġ_, Ġname Ġ-> Ġname . endsWith (". json ") Ġ} ĊĠĠĠ Ġif Ġ( files Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( file Ġin Ġfiles ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp act Ġ= ĠDefault P act Reader . load P act ( file ) ĊĠĠĠĠĠĠĠ Ġif Ġ( p act . provider . name Ġ== Ġprovider Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġp acts . add ( p act Ġas ĠP act < I >) ĊĠĠĠĠĠĠĠĠĠ Ġthis . p act Source . p acts . put ( file , Ġp act ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġp acts ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget P act Source () Ġ= Ġthis . p act Source ĊĊĠ Ġprivate Ġfun Ġresolve Path (): ĠFile Ġ{ ĊĠĠĠ Ġval Ġresource Path Ġ= ĠP act Folder Loader :: class . java . class Loader . getResource ( path . path ) ĊĠĠĠ Ġreturn Ġif Ġ( resource Path Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ ĠFile ( URL Decoder . decode ( resource Path . path , Ġ" UTF - 8 ")) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġreturn Ġpath ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ