/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ package Ġaws . smithy . kotlin . runtime . util Ċ Ċ /** Ċ Ġ* ĠAb straction Ġover Ġfilesystem Ċ Ġ*/ Ċ public Ġinterface ĠFile system Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġdelimiter Ġof Ġsegments Ġin Ġa Ġpath . ĠFor Ġexample Ġin ĠLinux : Ġ/ home / user / documents ĊĠĠĠĠ Ġ* Ġor ĠWindows : ĠC :\ Program ĠFiles \ Not ep ad . EXE ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠfilePath Separator : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRead Ġthe Ġcontents Ġof Ġa Ġfile Ġas Ġa Ġ[ String ] Ġor Ġreturn Ġnull Ġon Ġany Ġerror . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpath Ġfully Ġqualified Ġpath Ġencoded Ġspecifically Ġto Ġthe Ġtarget Ġplatform 's Ġfilesystem . ĊĠĠĠĠ Ġ* Ġ@ return Ġcontents Ġof Ġfile Ġor Ġnull Ġif Ġerror Ġ( file Ġdoes Ġnot Ġexist , Ġetc .) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠreadFile OrNull ( path : ĠString ): ĠByteArray ? ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠConstruct Ġa Ġfake Ġfilesystem Ġfrom Ġa Ġmapping Ġof Ġpaths Ġto Ġcontents ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Map ( data : ĠMap < String , ĠByteArray >, ĠfilePath Separator : ĠString Ġ= Ġ"/ "): ĠFile system Ġ= ĠMap Filesystem ( data , ĠfilePath Separator ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠMap Filesystem ( ĊĠĠĠ Ġprivate Ġval Ġdata : ĠMap < String , ĠByteArray >, ĊĠĠĠ Ġoverride Ġval ĠfilePath Separator : ĠString Ċ ) Ġ: ĠFile system Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠreadFile OrNull ( path : ĠString ): ĠByteArray ? Ġ= Ġdata [ path ] Ċ } Ċ