/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 5 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . jetbrains . kotlin . idea . quick fix Ċ Ċ import Ġcom . intellij . code Insight . int ention . Int ention Action Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġorg . jetbrains . kotlin . diagnostics . Diagnostic Ċ import Ġorg . jetbrains . kotlin . diagnostics . Errors Ċ import Ġorg . jetbrains . kotlin . psi . Jet File Ċ import Ġorg . jetbrains . kotlin . psi . Jet Property Ċ import Ġorg . jetbrains . kotlin . psi . Jet Property Accessor Ċ import Ġorg . jetbrains . kotlin . psi . Jet Psi Factory Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor To Source Utils Ċ Ċ public Ġclass ĠChange Variable Mut ability Fix ( element : ĠJet Property , Ġprivate Ġval Ġmake Var : ĠBoolean ) Ġ: ĠJet Int ention Action < Jet Property >( element ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetText () Ġ= Ġif Ġ( make Var ) Ġ" Make Ġvariable Ġmutable " Ġelse Ġ" Make Ġvariable Ġimmutable " ĊĊĠĠĠ Ġoverride Ġfun Ġget Family Name (): ĠString Ġ= ĠgetText () ĊĊĠĠĠ Ġoverride Ġfun Ġis Available ( project : ĠProject , Ġeditor : ĠEditor ?, Ġfile : ĠPsi File ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement . is Var () Ġ!= Ġmake Var ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( project : ĠProject , Ġeditor : ĠEditor ?, Ġfile : ĠJet File ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠJet Psi Factory ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Keyword Ġ= Ġif Ġ( make Var ) Ġfactory . create Var Keyword () Ġelse Ġfactory . create Val Keyword () ĊĠĠĠĠĠĠĠ Ġelement . get Val Or Var Keyword (). replace ( new Keyword ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġval ĠVAL _ WITH _ SET TER _ FACTORY : ĠJet Single Int ention Action Factory Ġ= Ġobject : ĠJet Single Int ention Action Factory () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Action ( diagnostic : ĠDiagnostic ): ĠInt ention Action ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccessor Ġ= Ġdiagnostic . get Psi Element () Ġas ĠJet Property Accessor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= Ġaccessor . getParent () Ġas ĠJet Property ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠChange Variable Mut ability Fix ( property , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpublic Ġval ĠVAL _ RE ASSIGN MENT _ FACTORY : ĠJet Single Int ention Action Factory Ġ= Ġobject : ĠJet Single Int ention Action Factory () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Action ( diagnostic : ĠDiagnostic ): ĠInt ention Action ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Descriptor Ġ= ĠErrors . VAL _ RE ASSIGN MENT . cast ( diagnostic ). get A () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeclaration Ġ= ĠDescriptor To Source Utils . descriptor To Declaration ( property Descriptor ) Ġas ? ĠJet Property Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠChange Variable Mut ability Fix ( declaration , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpublic Ġval ĠVAR _ OVER RID DEN _ BY _ VAL _ FACTORY : ĠJet Single Int ention Action Factory Ġ= Ġobject : ĠJet Single Int ention Action Factory () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Action ( diagnostic : ĠDiagnostic ): ĠInt ention Action ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠChange Variable Mut ability Fix ( diagnostic . get Psi Element () Ġas ĠJet Property , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ