/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠGoogle ĠLLC Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ ĊĊ Ċ package Ġcom . google . devtools . k sp . processor Ċ Ċ import Ġcom . google . devtools . k sp . processing . Resolver Ċ import Ġcom . google . devtools . k sp . symbol .* Ċ import Ġcom . google . devtools . k sp . visitor . K ST op Down Visitor Ċ Ċ class ĠJava Modifier Processor Ġ: ĠAbstract Test Processor () Ġ{ ĊĠĠĠ Ġval Ġresults Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠ Ġoverride Ġfun Ġto Result (): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprocess ( resolver : ĠResolver ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġresolver . getS ymbols With Annotation (" Test "). single () Ġas ĠK S Class Declaration ĊĠĠĠĠĠĠĠ Ġsymbol . super Types . single (). resolve () !!. declaration . accept ( Modifier Visitor (), ĠUnit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠModifier Visitor Ġ: ĠK ST op Down Visitor < Unit , ĠUnit >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdefault Handler ( node : ĠK S Node , Ġdata : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Class Declaration ( class Declaration : ĠK S Class Declaration , Ġdata : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . visit Modifier List Owner ( class Declaration , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Declaration . declarations . map Ġ{ Ġit . accept ( this , Ġdata ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Property Declaration ( property : ĠK S Property Declaration , Ġdata : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . visit Modifier List Owner ( property , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Function Declaration ( function : ĠK S Function Declaration , Ġdata : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . visit Modifier List Owner ( function , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Modifier List Owner ( modifier List Owner : ĠK S Modifier List Owner , Ġdata : ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add (( modifier List Owner Ġas ĠK S Declaration ). simple Name . asString () Ġ+ Ġ": Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier List Owner . modifiers . map Ġ{ Ġit . toString () Ġ}. join ToString (" Ġ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }