/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ġ< p > Ċ Ġ* Ġ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 Ċ Ġ* Ġ< p > Ċ Ġ* Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ġ< p > Ċ Ġ* Ġ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 Ġorg . open rewrite . java . search Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . open rewrite . Tree Ċ import Ġorg . open rewrite . java . Abstract Java Source Visitor Ċ import Ġorg . open rewrite . java . Java Parser Ċ import Ġorg . open rewrite . java . tree . J Ċ Ċ interface ĠFind Annotation Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġfoo Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . netflix . foo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠFoo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġbar (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġbaz (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatches Simple Fully Qualified Annotation ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{} ĊĠĠĠĠĠĠĠ Ġ"" ")[ 0 ] ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations ("@ java . lang . Deprecated "). isNotEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatches Annotation On Method ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġvoid Ġfoo () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ")[ 0 ] ĊĊĠĠĠĠĠĠĠ Ġval Ġdeprecated Ġ= Ġa . classes [ 0 ]. methods [ 0 ]. find Annotations ("@ java . lang . Deprecated "). first OrNull () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( deprecated ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( object Ġ: ĠAbstract Java Source Visitor < String ?> () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Cursor ing On () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdefault To ( t : ĠTree ?): ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Annotation ( annotation : ĠJ . Annotation ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( annotation Ġ=== Ġdeprecated ) Ġen closing Method ()?. simple Name Ġelse Ġsuper . visit Annotation ( annotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. visit ( a )). isEqualTo (" foo ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatches Annotation On Field ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated ĠString Ġs ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ")[ 0 ] ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. fields [ 0 ]. find Annotations ("@ java . lang . Deprecated "). isNotEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes Not Match Not Fully Qualified Annotations ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{} ĊĠĠĠĠĠĠĠ Ġ"" ")[ 0 ] ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations ("@ Deprecated "). isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatches Single Annotation Parameter ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SuppressWarnings (" deprecation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{} ĊĠĠĠĠĠĠĠ Ġ"" ")[ 0 ] ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations (""" @ java . lang . SuppressWarnings (" deprecation ") "" "). isNotEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations (""" @ java . lang . SuppressWarnings (" foo ") "" "). isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatches Named Parameters ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . netflix . foo . Foo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Foo ( bar =" qu ux ", Ġbaz =" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{} ĊĠĠĠĠĠĠĠ Ġ"" ", Ġfoo )[ 0 ] ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations (""" @ com . netflix . foo . Foo ( bar =" qu ux ", baz =" bar ") "" "). isNotEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations (""" @ com . netflix . foo . Foo ( bar =" qu x ", baz =" bar ") "" "). isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatches Named Parameters Reg ard less Of Order ( jp : ĠJava Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġjp . parse (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . netflix . foo . Foo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Foo ( bar =" qu ux ", Ġbaz =" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠA Ġ{} ĊĠĠĠĠĠĠĠ Ġ"" ", Ġfoo )[ 0 ] ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( a . classes [ 0 ]. find Annotations (""" @ com . netflix . foo . Foo ( baz =" bar ", bar =" qu ux ") "" "). isNotEmpty ()) ĊĠĠĠ Ġ} Ċ } Ċ