/* čĊ Ġ* Ġ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 čĊč Ċ import Ġorg . assertj . core . api . Assertions . assertThat č Ċ import Ġorg . junit . jupiter . api . Test č Ċ import Ġorg . open rewrite . config . Profile Configuration č Ċ import Ġorg . open rewrite . text . Change Text č Ċ import Ġorg . open rewrite . text . Plain Text čĊč Ċ class ĠRefactor Plan Test Ġ{ čĊĠĠĠ Ġprivate Ġval Ġparent Ġ= ĠProfile Configuration (). apply Ġ{ čĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" parent " čĊĠĠĠĠĠĠĠ Ġset Include ( set Of (" org . open rewrite . text .* ")) čĊĠĠĠĠĠĠĠ Ġset Configure ( map Of (" org . open rewrite . text . Change Text . to Text " Ġto Ġ" hi ")) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġchild Ġ= ĠProfile Configuration (). apply Ġ{ čĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" child " čĊĠĠĠĠĠĠĠ Ġset Extend (" parent ") čĊĠĠĠĠĠĠĠ Ġset Configure ( map Of (" org . open rewrite . text . Change Text . to Text " Ġto Ġ" over ridden ")) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġplan Builder Ġ= ĠRefactor Plan . builder () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load Profile ( parent ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load Profile ( child ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. visitor ( Change Text ()) čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġnearest Configuration T akes Pre cedence () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġvisitor s Ġ= Ġplan Builder . build (). visitor s (" child ") čĊčĊĠĠĠĠĠĠĠ Ġval Ġfixed : ĠPlain Text Ġ= ĠRefactor () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. visit ( visitor s ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fixed ( Plain Text ( Tree . random Id (), Ġ" Hello ĠWorld !", ĠFormat ting . EMPTY , Ġempty List ())) !! čĊčĊĠĠĠĠĠĠĠ ĠassertThat ( fixed . print ()). isEqualTo (" over ridden ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġexclude s () Ġ{ čĊĠĠĠĠĠĠĠ Ġchild . apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Exclude ( set Of (" org . open rewrite . text .* ")) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġvisitor s Ġ= Ġplan Builder . build () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. visitor s (" child ") čĊčĊĠĠĠĠĠĠĠ ĠassertThat ( visitor s ). isEmpty () čĊĠĠĠ Ġ} č Ċ } čĊ