package Ġcom . repos il ite . web . routing Ċ Ċ import Ġio . jav al in . J aval in Ċ import Ġio . jav al in . core . plugin . Plugin Ċ import Ġio . jav al in . core . plugin . Plugin Lifecycle Init Ċ import Ġio . jav al in . http . Context Ċ import Ġio . jav al in . http . Handler Ċ Ċ class ĠRouting Plugin < CONTEXT , ĠRESP ONSE Ġ: ĠAny >( ĊĠĠĠ Ġprivate Ġval Ġhandler : Ġ( Context , ĠRoute < CONTEXT , ĠRESP ONSE >) Ġ-> ĠRESP ONSE Ċ ) Ġ: ĠPlugin , ĠPlugin Lifecycle Init Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġrouting : ĠMutable Set < Route < CONTEXT , ĠRESP ONSE >> Ġ= ĠHashSet () ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( app : ĠJ aval in ) Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( app : ĠJ aval in ) Ġ= ĊĠĠĠĠĠĠĠ Ġrouting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted With ( Route Comparator ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġroute Ġ-> ĠPair ( route , Ġcreate Handler ( route )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġ( route , Ġhandler ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute . methods . forEach Ġ{ Ġmethod Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . HEAD Ġ-> Ġapp . head ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . PATCH Ġ-> Ġapp . patch ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . OPTIONS Ġ-> Ġapp . options ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . GET Ġ-> Ġapp . get ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . PUT Ġ-> Ġapp . put ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . POST Ġ-> Ġapp . post ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . DELETE Ġ-> Ġapp . delete ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . AFTER Ġ-> Ġapp . after ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Method . BEFORE Ġ-> Ġapp . before ( route . path , Ġhandler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Handler ( route : ĠRoute < CONTEXT , ĠRESP ONSE >) Ġ= ĊĠĠĠĠĠĠĠ ĠHandler Ġ{ Ġhandler ( it , Ġroute ) Ġ} ĊĊĠĠĠ Ġfun Ġregister Routes ( routes : ĠSet < Route < CONTEXT , ĠRESP ONSE >> ): ĠRouting Plugin < CONTEXT , ĠRESP ONSE > Ġ= ĊĠĠĠĠĠĠĠ Ġalso Ġ{ Ġrouting . addAll ( routes ) Ġ} ĊĊĠĠĠ Ġfun Ġregister Routes ( routes : ĠRoutes < CONTEXT , ĠRESP ONSE >): ĠRouting Plugin < CONTEXT , ĠRESP ONSE > Ġ= ĊĠĠĠĠĠĠĠ Ġalso Ġ{ Ġrouting . addAll ( routes . routes ) Ġ} Ċ Ċ }