package Ġmx . yellow me . you st . playground . ui . n emo . navigator . hooks Ċ Ċ import Ġmx . yellow me . you st . playground . Build Config Ċ Ċ abstract Ġclass ĠNavigator Ġ{ ĊĠĠĠ Ġvar Ġnext : ĠNavigator ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval ĠtagName : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjava Class . simple Name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġrun () ĊĊĠĠĠ Ġabstract Ġfun Ġexecute Exit () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġchains Ġof Ġhandler Ġobjects . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlink With ( next : ĠNavigator ): ĠNavigator Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" NAV IG ATION : ĠLink Ġ$ tagName Ġwith Ġnext Ġ${ next . tagName }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . next Ġ= Ġnext ĊĠĠĠĠĠĠĠ Ġreturn Ġnext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcontinue Flow If ( matches Valid ations : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( matches Valid ations ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" NAV IG ATION : Ġcontinue Ġat Ġ$ tagName , Ġrunning Ġnext Ġ-> Ġ${ it . tagName }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Exit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġexecute Exit () ĊĠĠĠ Ġ} Ċ } Ċ