package Ġorg . jetbrains . kotlin . as Java . classes Ċ Ċ import Ġcom . intellij . lang . jvm . Jvm Modifier Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . psi . impl . Psi Impl Util Ċ import Ġcom . intellij . psi . impl . light . Light Identifier Ċ import Ġcom . intellij . psi . meta . Psi MetaData Ċ import Ġcom . intellij . psi . util . Type Conversion Util Ċ import Ġorg . jetbrains . annotations . NotNull Ċ import Ġorg . jetbrains . annotations . Nullable Ċ import Ġorg . jetbrains . kotlin . as Java . elements . Kt Light Abstract Annotation Ċ import Ġorg . jetbrains . kotlin . as Java . elements . Kt Light Element Base Ċ import Ġorg . jetbrains . kotlin . as Java . elements . Kt Light Null ability Annotation Ċ import Ġorg . jetbrains . kotlin . as Java . elements . psi Type Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . annotations . Annotation Descriptor Ċ import Ġorg . jetbrains . kotlin . psi . Kt Call Element Ċ import Ġorg . jetbrains . kotlin . psi . Kt Element Ċ import Ġorg . jetbrains . kotlin . resolve . constants .* Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ import Ġorg . jetbrains . kotlin . types . Type Utils Ċ import Ġorg . jetbrains . kotlin . types . isError Ċ import Ġorg . jetbrains . kotlin . types . type Util . Type Null ability Ċ import Ġorg . jetbrains . kotlin . types . type Util . is Type Parameter Ċ import Ġorg . jetbrains . kotlin . types . type Util . null ability Ċ Ċ class ĠK t Ul tra Light Null ability Annotation ( ĊĠĠĠ Ġmember : ĠK t Ul tra Light Element With Null ability Annotation < *, Ġ* >, ĊĠĠĠ Ġparent : ĠPsi Element Ċ ) Ġ: ĠK t Light Null ability Annotation < Kt Ul tra Light Element With Null ability Annotation < *, Ġ* >>( member , Ġparent ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget QualifiedName (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkotlin Type Ġ= Ġmember . kotlin Type For Null ability Annotation ?. take Unless ( Kotlin Type :: isError ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġpsi Type Ġ= Ġmember . psi Type For Null ability Annotation Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( member . is Private Or Parameter In Private Method () Ġ|| Ġpsi Type Ġis ĠPsi Primitive Type ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( kotlin Type . is Type Parameter ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Type Utils . has Nullable Super Type ( kotlin Type )) Ġreturn ĠNot Null :: class . java . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! kotlin Type . is Marked Nullable ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnull ability Ġ= Ġkotlin Type . null ability () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( null ability ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType Null ability . NOT _ NULL Ġ-> ĠNot Null :: class . java . name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType Null ability . NULL ABLE Ġ-> ĠNullable :: class . java . name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType Null ability . FLEX IBLE Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠDeclaration Descriptor . obtain Light Annotations ( ĊĠĠĠ Ġul tra Light Support : ĠU l tra Light Support , ĊĠĠĠ Ġparent : ĠPsi Element Ċ ): ĠList < Kt Light Abstract Annotation > Ġ= Ġannotations . map Ġ{ ĠK t Ul tra Light Annotation For Descriptor ( it , Ġul tra Light Support , Ġparent ) Ġ} Ċ Ċ class ĠK t Ul tra Light Annotation For Descriptor ( ĊĠĠĠ Ġprivate Ġval Ġannotation Descriptor : ĠAnnotation Descriptor , ĊĠĠĠ Ġprivate Ġval Ġul tra Light Support : ĠU l tra Light Support , ĊĠĠĠ Ġparent : ĠPsi Element Ċ ) Ġ: ĠK t Light Abstract Annotation ( parent , Ġ{ Ġerror (" cls Delegate Ġfor Ġannotation Ġbased Ġon Ġdescriptor : Ġ$ annotation Descriptor ") Ġ}) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetName Reference Element (): ĠPsi Java Code Reference Element ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget MetaData (): ĠPsi MetaData ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġparameter List Ġ= ĠParameter List Impl () ĊĊĠĠĠ Ġoverride Ġfun Ġget Parameter List (): ĠPsi Annotation Parameter List Ġ= Ġparameter List ĊĊĠĠĠ Ġoverride Ġval Ġkotlin Origin : ĠK t Call Element ? Ġget () Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠPsi Annotation Member Value ?> Ġset Declared AttributeValue ( p 0 : ĠString ?, Ġp 1 : ĠT ?) Ġ= Ġcannot Modify () ĊĊĠĠĠ Ġoverride Ġfun Ġfind AttributeValue ( attribute Name : ĠString ?): ĠPsi Annotation Member Value ? Ġ= ĊĠĠĠĠĠĠĠ ĠPsi Impl Util . find AttributeValue ( this , Ġattribute Name ) ĊĊĠĠĠ Ġoverride Ġfun Ġfind Declared AttributeValue ( attribute Name : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠ ĠPsi Impl Util . find Declared AttributeValue ( this , Ġattribute Name ) ĊĊĠĠĠ Ġoverride Ġfun Ġget QualifiedName () Ġ= Ġannotation Descriptor . fq Name ?. asString () ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠParameter List Impl Ġ: ĠK t Light Element Base ( this @ Kt Ul tra Light Annotation For Descriptor ), ĠPsi Annotation Parameter List Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ_ attributes : ĠArray < Psi NameValuePair > Ġby Ġlazy Pub Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Descriptor . all Value Arguments . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPsi NameValuePair For Annotation Argument ( it . key . asString (), Ġit . value , Ġul tra Light Support , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Attributes (): ĠArray < Psi NameValuePair > Ġ= Ġ_ attributes ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġkotlin Origin : ĠK t Element ? Ġget () Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetText () Ġ= Ġ"@ $ qualified Name (" Ġ+ Ġparameter List . attributes . join ToString Ġ{ Ġit . name Ġ+ Ġ"=" Ġ+ Ġit . value ?. text Ġ} Ġ+ Ġ")" Ċ } Ċ Ċ private Ġclass ĠPsi NameValuePair For Annotation Argument ( ĊĠĠĠ Ġprivate Ġval Ġ_ name : ĠString Ġ= Ġ"", ĊĠĠĠ Ġprivate Ġval Ġconstant Value : ĠConstant Value <* >, ĊĠĠĠ Ġprivate Ġval Ġul tra Light Support : ĠU l tra Light Support , ĊĠĠĠ Ġparent : ĠPsi Element Ċ ) Ġ: ĠK t Light Element Base ( parent ), ĠPsi NameValuePair Ġ{ ĊĠĠĠ Ġoverride Ġval Ġkotlin Origin : ĠK t Element ? Ġget () Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġ_ value Ġby Ġlazy Pub Ġ{ ĊĠĠĠĠĠĠĠ Ġconstant Value . to Annotation Member Value ( this , Ġul tra Light Support ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( p 0 : ĠPsi Annotation Member Value ) Ġ= Ġcannot Modify () ĊĊĠĠĠ Ġoverride Ġfun ĠgetName Identifier () Ġ= ĠLight Identifier ( parent . manager , Ġ_ name ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue (): ĠPsi Annotation Member Value ? Ġ= Ġ_ value ĊĊĠĠĠ Ġoverride Ġfun Ġget Literal Value (): ĠString ? Ġ= Ġ( value Ġas ? ĠPsi Literal Expression )?. value ?. toString () ĊĊĠĠĠ Ġoverride Ġfun ĠgetName () Ġ= Ġ_ name Ċ } Ċ Ċ private Ġfun ĠConstant Value <* >. to Annotation Member Value ( ĊĠĠĠ Ġparent : ĠPsi Element , Ġul tra Light Support : ĠU l tra Light Support Ċ ): ĠPsi Annotation Member Value ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĊĠĠĠ Ġis ĠAnnotation Value Ġ-> ĠK t Ul tra Light Annotation For Descriptor ( value , Ġul tra Light Support , Ġparent ) ĊĊĠĠĠ Ġis ĠArray Value Ġ-> ĊĠĠĠĠĠĠĠ ĠK t Ul tra Light Psi Array Initializer Member Value ( light Parent Ġ= Ġparent ) Ġ{ Ġarray Literal Parent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value . map NotNull Ġ{ Ġelement Ġ-> Ġelement . to Annotation Member Value ( array Literal Parent , Ġul tra Light Support ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġis ĠError Value Ġ-> Ġnull ĊĠĠĠ Ġelse Ġ-> Ġcreate Psi Literal ( parent ) Ċ } Ċ Ċ private Ġfun ĠConstant Value <* >. create Psi Literal ( parent : ĠPsi Element ): ĠPsi Expression ? Ġ{ ĊĠĠĠ Ġval Ġas String Ġ= Ġas String For Psi Literal ( parent ) ĊĠĠĠ Ġval Ġinstance Ġ= ĠPsi Element Factory . SERVICE . getInstance ( parent . project ) ĊĠĠĠ Ġreturn Ġinstance . create Expression FromText ( asString , Ġparent ) Ċ } Ċ Ċ private Ġfun ĠConstant Value <* >. asString For Psi Literal ( parent : ĠPsi Element ): ĠString Ġ= ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠNull Value Ġ-> Ġ" null " ĊĠĠĠĠĠĠĠ Ġis ĠString Value Ġ-> Ġ"\" $ value \"" ĊĠĠĠĠĠĠĠ Ġis ĠK Class Value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġ( value Ġas ĠK Class Value . Value . Normal Class ). value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Part Ġ= Ġ" [] ". repeat ( value . array Nested ness ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfq Name Ġ= Ġvalue . class Id . as Single Fq Name () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanonical Text Ġ= Ġpsi Type ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfq Name . asString (), Ġparent , Ġbox Primitive Type Ġ= Ġvalue . array Nested ness Ġ> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). let ( Type Conversion Util :: er asure ). getCanonical Text ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ canonical Text $ array Part . class " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠEnum Value Ġ-> Ġ"${ enum Class Id . as Single Fq Name (). asString ()}. $ enum Entry Name " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvalue . toString () ĊĠĠĠ Ġ} ĊĊ Ċ private Ġclass ĠK t Ul tra Light Psi Array Initializer Member Value ( ĊĠĠĠ Ġval Ġlight Parent : ĠPsi Element , ĊĠĠĠ Ġprivate Ġval Ġarguments : Ġ( Kt Ul tra Light Psi Array Initializer Member Value ) Ġ-> ĠList < Psi Annotation Member Value > Ċ ) Ġ: ĠK t Light Element Base ( light Parent ), ĠPsi Array Initializer Member Value Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġkotlin Origin : ĠK t Element ? Ġget () Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Initial izers (): ĠArray < Psi Annotation Member Value > Ġ= Ġarguments ( this ). to Typed Array () ĊĊĠĠĠ Ġoverride Ġfun ĠgetParent (): ĠPsi Element Ġ= Ġlight Parent ĊĠĠĠ Ġoverride Ġfun Ġis Physical (): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠgetText (): ĠString Ġ= Ġ" {" Ġ+ Ġinitial izers . join ToString Ġ{ Ġit . text Ġ} Ġ+ Ġ" }" Ċ } Ċ Ċ fun ĠPsi Modifier List Owner . is Private Or Parameter In Private Method (): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( has Modifier ( Jvm Modifier . PRIVATE )) Ġreturn Ġtrue ĊĠĠĠ Ġif Ġ( this Ġ! is ĠPsi Parameter ) Ġreturn Ġfalse ĊĠĠĠ Ġval Ġparent Method Ġ= Ġdeclaration Scope Ġas ? ĠPsi Method Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġparent Method . has Modifier ( Jvm Modifier . PRIVATE ) Ċ } Ċ