package Ġio . project env . intellij plugin . configur ers . gradle Ċ Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . external System . settings . External System Settings Listener Adapter Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġio . project env . core . cli . api . Tool Info Ċ import Ġio . project env . intellij plugin . configur ers . Tool Configurer Ċ import Ġio . project env . intellij plugin . services . Project Env Service Ċ import Ġorg . jetbrains . plugins . gradle . settings . Gradle Project Settings Ċ import Ġorg . jetbrains . plugins . gradle . settings . Gradle Settings Ċ Ċ abstract Ġclass ĠAbstract Gradle Configurer ( val Ġproject : ĠProject ) Ġ: ĠTool Configurer , ĊĠĠĠ ĠExternal System Settings Listener Adapter < Gradle Project Settings >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġtool Info : ĠTool Info ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Parent Ġ= Ġproject . service < Project Env Service >() ĊĠĠĠĠĠĠĠ ĠGradle Settings . getInstance ( project ). subscribe ( this , Ġdis posable Parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure Tool ( tool Info : ĠTool Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . tool Info Ġ= Ġtool Info ĊĊĠĠĠĠĠĠĠ Ġupdate Projects Configuration ( Gradle Settings . getInstance ( project ). linked Projects Settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Projects Linked ( settings : ĠMutable Collection < Gradle Project Settings >) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Projects Configuration ( settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Projects Loaded ( settings : ĠMutable Collection < Gradle Project Settings >) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Projects Configuration ( settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Projects Configuration ( settings : ĠCollection < Gradle Project Settings >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tool Info Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠApplication Manager . getApplication (). run Write Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( project Settings Ġin Ġsettings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Project Configuration ( tool Info !! , Ġproject Settings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġupdate Project Configuration ( tool Info : ĠTool Info , Ġproject Settings : ĠGradle Project Settings ) Ċ } Ċ