package Ġcom . jetbrains . r ider . plugins . unity . util Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . intellij . openapi . diagnostic . Logger Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . V fs Util Ċ import Ġjava . io . FileNotFoundException Ċ Ċ enum Ġclass ĠEditor Instance Json Status Ġ{ ĊĠĠĠ ĠMissing , ĊĠĠĠ ĠError , ĊĠĠĠ ĠOut dated , ĊĠĠĠ ĠValid Ċ } Ċ Ċ data Ġclass ĠEditor Instance Json ( val Ġprocess _ id : ĠInt , Ġval Ġversion : ĠString ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLogger . getInstance ( Editor Instance Json :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġload ( project : ĠProject ): ĠPair < Editor Instance Json Status , ĠEditor Instance Json ?> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRead Ġfrom ĠV FS , Ġso Ġwe Ġcan Ġmake Ġuse Ġof Ġcaching , Ġbut Ġmake Ġsure Ġit 's Ġup Ġto Ġdate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġproject . refresh And Find File (" Library / Editor Instance . json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( file Ġ== Ġnull Ġ|| Ġ! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Editor Instance Json Status . Missing , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠV fs Util . load Text ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġgson . fromJson ( text , ĠEditor Instance Json :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġif Ġ( json Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Empty ĠEditor Instance . json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor Instance Json Status . Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditor Instance Json Status . Valid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( status , Ġjson ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Editor Instance . json Ġmissing , Ġafter ĠV FS Ġexists Ġcheck Ġpassed ? ĠContinu ing Ġas Ġthough Ġmissing ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Editor Instance Json Status . Missing , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Error Ġloading ĠEditor Instance . json . ĠContinu ing Ġas Ġthough Ġmissing .", Ġt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Editor Instance Json Status . Error , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }