package Ġde . code centric . h ik aku . converters . spring . extensions Ċ Ċ import Ġde . code centric . h ik aku . endpoints . Path Parameter Ċ import Ġorg . springframework . web . bind . annotation . PathVariable Ċ import Ġorg . springframework . web . method . Handler Method Ċ import Ġkotlin . reflect . K Parameter Ċ import Ġkotlin . reflect . jvm . kotlin Function Ċ Ċ internal Ġfun ĠHandler Method . h ik aku Path Parameters (): ĠSet < Path Parameter > Ġ{ ĊĠĠĠ Ġval Ġmethod Ġ= Ġthis . method . kotlin Function Ġ?: Ġreturn Ġempty Set () ĊĊĠĠĠ Ġreturn Ġmethod . parameters ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . annotations . filter Is Instance < PathVariable >(). any () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġextract Path Parameter ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () Ċ } Ċ Ċ private Ġfun Ġextract Path Parameter ( it : ĠK Parameter ): ĠPath Parameter Ġ{ ĊĠĠĠ Ġval Ġrequest Param Ġ= Ġit . annotations . find Ġ{ Ġit Ġis ĠPath Variable Ġ} Ġas ĠPath Variable ĊĠĠĠ Ġval Ġparameter Name Ġ= Ġextract Path ParameterName ( request Param , Ġit ) ĊĊĠĠĠ Ġreturn ĠPath Parameter ( parameter Name ) Ċ } Ċ Ċ private Ġfun Ġextract Path ParameterName ( request Param : ĠPath Variable , Ġit : ĠK Parameter ): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( request Param . value . isNotBlank () Ġ&& Ġrequest Param . name . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Both Ġ' value ' Ġand Ġ' name ' Ġattribute Ġare Ġprovided Ġfor Ġpath Ġparameter Ġ'${ it . name }'. ĠOnly Ġone Ġis Ġpermitted .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Param . value . isNotBlank () Ġ-> Ġrequest Param . value ĊĠĠĠĠĠĠĠ Ġrequest Param . name . isNotBlank () Ġ-> Ġrequest Param . name ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit . name Ġ?: Ġ"" ĊĠĠĠ Ġ} Ċ }