package Ġorg . jetbrains . research . kotlin codes mell detector . core Ċ Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġorg . jetbrains . kotlin . psi . Kt Declaration Ċ import Ġorg . jetbrains . kotlin . psi . Kt Expression Ċ import Ġorg . jetbrains . research . kotlin codes mell detector . utils . references In Body Ċ import Ġorg . jetbrains . research . kotlin codes mell detector . utils . resolve To Element Ċ import Ġorg . jetbrains . research . kotlin codes mell detector . utils . used Through This Reference Ċ Ċ class ĠGod Class Visualization Data ( ĊĠĠĠ Ġextracted Methods : ĠSet < Kt Declaration >, ĊĠĠĠ Ġextracted Fields : ĠSet < Kt Declaration > Ċ ) Ġ: ĠVisualization Data Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdistinct Target Dependencies : ĠInt ĊĊĠĠĠ Ġoverride Ġval Ġdistinct Source Dependencies : ĠInt ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdistinct Target Dependencies Ġ= Ġmutable Set Of < Psi Element >() ĊĠĠĠĠĠĠĠ Ġval Ġdistinct Source Dependencies Ġ= Ġmutable Set Of < Psi Element >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( function Ġin Ġextracted Methods ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( kt Expression : ĠK t Expression Ġin Ġfunction . references In Body ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( used Through This Reference ( kt Expression )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= Ġkt Expression . resolve To Element Ġ?: Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Invocation To Extract ed Function ( resolved , Ġextracted Methods ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Access To Extract ed Property ( resolved , Ġextracted Fields ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistinct Target Dependencies . add ( resolved ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistinct Source Dependencies . add ( resolved ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . distinct Target Dependencies Ġ= Ġdistinct Target Dependencies . size ĊĠĠĠĠĠĠĠ Ġthis . distinct Source Dependencies Ġ= Ġdistinct Source Dependencies . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Invocation To Extract ed Function ( ĊĠĠĠĠĠĠĠ Ġresolved : ĠPsi Element ?, ĊĠĠĠĠĠĠĠ Ġextracted Functions : ĠSet < Kt Declaration > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( method Ġin Ġextracted Functions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( method Ġ== Ġresolved ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Access To Extract ed Property ( ĊĠĠĠĠĠĠĠ Ġresolved : ĠPsi Element ?, ĊĠĠĠĠĠĠĠ Ġextracted Properties : ĠSet < Kt Declaration > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( field Ġin Ġextracted Properties ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġresolved ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }