package Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . interfaces Ċ Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . base . Operation Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . base . Operation . Companion . nop Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ Ċ interface ĠI FileSystem Hook Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġa ĠFile Ġobject Ġis Ġgoing Ġto Ġinvoke Ġ[ File . delete ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġthe Ġ[ File ] Ġobject Ġcalling Ġ[ File . delete ] ĊĠĠĠĠ Ġ* Ġ@ return Ġto Ġbypass Ġthe Ġoriginal Ġmethod , Ġreturn Ġa ĠBoolean Ġwrapped Ġby Ġ[ Operation . replacement ], ĊĠĠĠĠ Ġ* Ġotherwise Ġreturn Ġ[ Operation . nop ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon File Deleting ( file : ĠFile ): ĠOperation < Boolean > Ġ= Ġnop () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġa ĠFile Ġobject Ġhas Ġreturned Ġfrom Ġ[ File . delete ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġthe Ġ[ File ] Ġobject Ġcalling Ġ[ File . delete ] ĊĠĠĠĠ Ġ* Ġ@ param Ġresult Ġthe Ġresult Ġreturned Ġby Ġ[ File . delete ] ĊĠĠĠĠ Ġ* Ġ@ return Ġto Ġreplace Ġthe Ġoriginal Ġresult , Ġreturn Ġa ĠBoolean Ġwrapped Ġby Ġ[ Operation . replacement ], ĊĠĠĠĠ Ġ* Ġotherwise Ġreturn Ġ[ Operation . nop ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon File Deleted ( file : ĠFile , Ġresult : ĠBoolean ): ĠOperation < Boolean > Ġ= Ġnop () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġa Ġ[ FileInputStream ] Ġobject Ġis Ġbeing Ġcreated . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġthe Ġ[ File ] Ġobject Ġthe Ġstream Ġreading Ġfrom . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon File Reading ( file : ĠFile ) Ġ{ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġa Ġ[ File OutputStream ] Ġobject Ġis Ġbeing Ġcreated . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġthe Ġ[ File ] Ġobject Ġthe Ġstream Ġwriting Ġto ĊĠĠĠĠ Ġ* Ġ@ param Ġappend Ġif Ġ` true `, Ġthen Ġbytes Ġwill Ġbe Ġwritten Ġto Ġthe Ġend Ġrather Ġthan Ġthe Ġbeginning ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon File Writing ( file : ĠFile , Ġappend : ĠBoolean ) Ġ{ Ġ} Ċ }