package Ġkon ne kt Ċ Ċ import Ġcom . intellij . code Inspection . Problem Highlight Type Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġkon ne kt . dependencies . Client Declaration Ċ import Ġkon ne kt . dependencies . fq Entry Ċ import Ġkon ne kt . dependencies . has Verb Annotation Ċ import Ġkon ne kt . dependencies . no Client Annotation Ċ import Ġorg . jetbrains . kotlin . idea . ins pe ctions . Abstract Applic ability Based Inspection Ċ import Ġorg . jetbrains . kotlin . idea . util . name Identifier Text Range In This Ċ import Ġorg . jetbrains . kotlin . psi . Kt Class Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . containing Class Ċ Ċ class ĠClient Fun Without Client Annotation Inspection Ġ: ĠAbstract Applic ability Based Inspection < Kt Named Function >( Kt Named Function :: class . java ) Ġ{ ĊĠ Ġoverride Ġval Ġdefault Fix Text : ĠString Ġ= Ġ" Annot ate Ġinterface Ġwith Ġ${ Client Declaration . fq Entry }}" ĊĠ Ġoverride Ġfun ĠgetStatic Description (): ĠString Ġ= Ġ" Client Ġfun Ġwithout Ġ${ Client Declaration . fq Entry }}" ĊĊĠ Ġoverride Ġfun Ġinspection Highlight Range In Element ( element : ĠK t Named Function ): ĠText Range ? Ġ{ ĊĠĠĠ Ġreturn Ġelement . name Identifier Text Range In This () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġinspection Highlight Type ( element : ĠK t Named Function ): ĠProblem Highlight Type Ġ{ ĊĠĠĠ Ġreturn ĠProblem Highlight Type . ERROR ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġapply To ( element : ĠK t Named Function , Ġproject : ĠProject , Ġeditor : ĠEditor ?) Ġ{ ĊĠĠĠ Ġval Ġklass Ġ= Ġelement . containing Class () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġentry Ġ= ĠK t Psi Factory ( project ). create Annotation Entry ( Client Declaration . fq Entry ) ĊĠĠĠ Ġklass . add Annotation Entry ( entry ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġinspection Text ( element : ĠK t Named Function ): ĠString Ġ{ ĊĠĠĠ Ġval Ġklass Ġ= Ġelement . containing Class () Ġ?: Ġreturn Ġ"" ĊĠĠĠ Ġreturn Ġklass . name As Safe Name . asString (). no Client Annotation ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġis Applicable ( element : ĠK t Named Function ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġklass Ġ= Ġelement . containing Class () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġelement . has Verb Annotation () Ġ&& Ġ! klass . is Kon ne kt Client () Ġ&& Ġklass . is Interface () ĊĠ Ġ} Ċ Ċ } Ċ Ċ private Ġfun ĠK t Class . is Kon ne kt Client () Ġ= Ġkon ne kt . dependencies . is Kon ne kt Client ( this )