package Ġorg . jetbrains . mic ronaut Ċ Ċ import Ġcom . intellij . code Insight . Annotation Util Ċ import Ġcom . intellij . code Insight . daemon . Implicit Usage Provider Ċ import Ġcom . intellij . psi .* Ċ Ċ // ĠExample Ġ# 2 Ġ: ĠImp licit Ġentry Ġpoints Ġof Ġthe Ġframework Ċ class ĠM ic ronaut Implicit Usage Provider Ġ: ĠImp licit Usage Provider Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis Implicit Write ( element : ĠPsi Element ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġis ĠPsi Field ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠAnnotation Util . is Annotated ( element , ĠIN JECT , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Implicit Read ( element : ĠPsi Element ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Implicit Usage ( element : ĠPsi Element ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( element Ġis ĠPsi Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAnnotation Util . is Annotated ( element , ĠBE AN _ AN NOT ATIONS , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( element Ġis ĠPsi Method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġelement . has Modifier Property ( Psi Modifier . PUBLIC ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ! element . has Modifier Property ( Psi Modifier . STATIC ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠAnnotation Util . is Annotated ( element , ĠMETHOD _ AN NOT ATIONS , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġin Controller Class ( element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġin Controller Class ( element : ĠPsi Method ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontaining Class Ġ= Ġelement . containing Class ĊĠĠĠĠĠĠĠ Ġreturn Ġcontaining Class Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcontaining Class . qualified Name Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠAnnotation Util . is Annotated ( containing Class , ĠCONT ROLL ER _ CLASS , Ġ 0 ) ĊĠĠĠ Ġ} Ċ }