package Ġorg . cq fn . di kt at . rule set . utils Ċ Ċ import Ġcom . p interest . kt lint . core . ast . ElementType Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . AN NOT ATION _ ENTRY Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . BLOCK Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . CON STRUCTOR _ CAL LE E Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . IDENTIFIER Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . MODI FIER _ LIST Ċ import Ġcom . p interest . kt lint . core . ast . ElementType . OVERRIDE _ KEYWORD Ċ import Ġorg . cq fn . di kt at . rule set . rules . Package Naming . Companion . PACKAGE _ PATH _ AN CH OR Ċ import Ġorg . jetbrains . kotlin . com . intellij . lang . AST Node Ċ import Ġorg . jetbrains . kotlin . psi . Kt Function Ċ import Ġorg . jetbrains . kotlin . psi . Kt Parameter Ċ import Ġorg . jetbrains . kotlin . psi . Kt Parameter List Ċ Ċ fun ĠAST Node . has Parameters (): ĠBoolean Ġ{ ĊĠĠĠ Ġcheck Node Is Fun ( this ) ĊĠĠĠ Ġval Ġarg List Ġ= Ġthis . arg List () ĊĠĠĠ Ġreturn Ġarg List Ġ!= Ġnull Ġ&& Ġarg List . has Child OfType ( ElementType . VALUE _ PARAMETER ) Ċ } Ċ Ċ fun ĠAST Node . parameter Names (): ĠCollection < String ?> Ġ{ ĊĠĠĠ Ġcheck Node Is Fun ( this ) ĊĠĠĠ Ġreturn Ġ( psi Ġas ĠK t Function ). value Parameters . map Ġ{ Ġit . name Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġlist Ġof Ġlines Ġof Ġthis Ġfunction Ġbody , Ġexcluding Ġopening Ġand Ġclosing Ġbr aces Ġif Ġthey Ġare Ġon Ġseparate Ġlines Ċ Ġ*/ Ċ fun ĠAST Node . getBody Lines (): ĠList < String > Ġ{ ĊĠĠĠ Ġcheck Node Is Fun ( this ) ĊĠĠĠ Ġreturn Ġthis . getFirst Child WithType ( BLOCK )?. let Ġ{ Ġblock Node Ġ-> ĊĠĠĠĠĠĠĠ Ġblock Node . text . lines () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġif Ġ( it . first (). matches ("\\ { \\ s * ". to Regex ())) Ġit . drop ( 1 ) Ġelse Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġif Ġ( it . last (). matches ("\\ s *} ". to Regex ())) Ġit . drop Last ( 1 ) Ġelse Ġit Ġ} ĊĠĠĠ Ġ} Ġ?: Ġempty List () Ċ } Ċ Ċ /** Ċ Ġ* ĠChecks Ġif Ġthis Ġfunction Ġis Ġgetter Ġor Ġsetter Ġaccording Ġto Ġit 's Ġsignature Ċ Ġ*/ Ċ fun ĠAST Node . is Getter Or Setter (): ĠBoolean Ġ{ ĊĠĠĠ Ġcheck Node Is Fun ( this ) ĊĠĠĠ Ġreturn Ġget Identifier Name ()?. let Ġ{ Ġfunction Name Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Name . text . startsWith ( SET _ PREFIX ) Ġ-> Ġparameter Names (). size Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Name . text . startsWith ( GET _ PREFIX ) Ġ-> Ġparameter Names (). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġ?: Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠCheck Ġwhether Ġthis Ġfunction Ġis Ġa Ġstandard Ġmethod Ċ Ġ*/ Ċ fun ĠAST Node . is Standard Method () Ġ= Ġalso (:: check Node Is Fun ) ĊĠĠĠĠĠĠĠ Ġ. getIdentifier Name () ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġit . text Ġin ĠST AND ARD _ METHO DS Ġ} ĊĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĊ Ċ fun ĠAST Node . is Over ridden () Ġ: ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġget First Child WithType ( MODI FIER _ LIST ) ĊĠĠĠĠĠĠĠ Ġ? . has Child OfType ( OVERRIDE _ KEYWORD ) Ġ?: Ġfalse ĊĊ Ċ private Ġfun ĠAST Node . arg List (): ĠAST Node ? Ġ{ ĊĠĠĠ Ġcheck Node Is Fun ( this ) ĊĠĠĠ Ġreturn Ġthis . getFirst Child WithType ( ElementType . VALUE _ PARAMETER _ LIST ) Ċ } Ċ Ċ private Ġfun Ġcheck Node Is Fun ( node : ĠAST Node ) Ġ= ĊĠĠĠĠĠĠĠ Ġrequire ( node . elementType Ġ== ĠElementType . FUN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" This Ġutility Ġmethod Ġoper ates Ġon Ġnodes Ġof Ġtype ĠElementType . FUN Ġonly " ĊĠĠĠĠĠĠĠ Ġ} Ċ