/* Ċ Ġ* Ġ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 . tree Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . open rewrite . Issue Ċ import Ġorg . open rewrite . java . Java Parser Ċ import Ġorg . open rewrite . java . Java Tree Test Ċ import Ġorg . open rewrite . java . Java Tree Test . N esting Level . Compilation Unit Ċ Ċ interface ĠEnum Test Ġ: ĠJava Tree Test Ġ{ ĊĊĠĠĠ Ġ@ Issue (" https :// github . com / open rewrite / rewrite / issues / 3 7 9 ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenum With Annotations ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġenum ĠTest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated ( since Ġ= Ġ" now ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOne , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deprecated ( since Ġ= Ġ" now ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTwo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġanonymous Class Initializer ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġenum ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA 1 ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvoid Ġfoo () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvoid Ġfoo () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ( int Ġn ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabstract Ġvoid Ġfoo (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenum Constructor ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠO uter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġenum ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA 1 ( 1 ); ĊĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ( int Ġn ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġstatic Ġfinal Ġclass ĠContext Failed To Start Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġstatic ĠObject [] Ġcombine Arguments ( String Ġcontext , ĠThrowable Ġex , ĠObject [] Ġarguments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew ĠObject [ arguments . length Ġ+ Ġ 2 ]; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġno Arguments ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġenum ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA 1 , ĠA 2 (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenum With Parameters ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġenum ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠONE ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTWO ( 2 ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ( int Ġn ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenum Without Parameters ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ" public Ġenum ĠA Ġ{ ĠONE , ĠTWO Ġ}" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenum Un ne cess arily Terminated With Sem icolon ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ" public Ġenum ĠA Ġ{ ĠONE Ġ; Ġ}" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenum With Empty Parameters ( jp : ĠJava Parser ) Ġ= Ġassert Parse Print And Process ( ĊĠĠĠĠĠĠĠ Ġjp , ĠCompilation Unit , Ġ" public Ġenum ĠA Ġ{ ĠONE Ġ( Ġ), ĠTWO Ġ( Ġ) Ġ}" ĊĠĠĠ Ġ) Ċ } Ċ