/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 - 2 0 2 0 Ġthe Ġoriginal Ġauthors Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ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 Ġio . openapi processor . spring . writer . java Ċ Ċ import Ġio . openapi processor . core . model . Endpoint Ċ import Ġio . openapi processor . core . model . Endpoint Response Ċ import Ġio . openapi processor . core . writer . java . Mapping Annotation Writer Ġas ĠCore Mapping Annotation Writer Ċ import Ġjava . io . Writer Ċ Ċ /** Ċ Ġ* Ġspring Ġmapping Ġannotation Ġwriter Ċ Ġ* Ċ Ġ* Ġ@ author ĠMartin ĠHa uner Ċ Ġ*/ Ċ class ĠMapping Annotation Writer : ĠCore Mapping Annotation Writer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( target : ĠWriter , Ġendpoint : ĠEndpoint , Ġendpoint Response : ĠEndpoint Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget . write ( create Annotation ( endpoint , Ġendpoint Response )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Annotation ( endpoint : ĠEndpoint , Ġendpoint Response : ĠEndpoint Response ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmapping Ġ= Ġget Mapping Annotation ( endpoint ) ĊĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ"(" ĊĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ" path Ġ= Ġ" Ġ+ Ġquote ( endpoint . path ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconsume s Ġ= Ġendpoint . get Cons umes Content Types () ĊĠĠĠĠĠĠĠ Ġif Ġ( consume s . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ", Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ" consume s Ġ= Ġ{" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ Ġconsume s . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquote ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join ToString (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ' }' ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Types Ġ= Ġendpoint Response . content Types ĊĠĠĠĠĠĠĠ Ġif Ġ( content Types . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ", Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ" pro duces Ġ= Ġ{" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġcontent Types . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquote Ġ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join ToString Ġ( ", Ġ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ" }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmapping Ġ+= Ġ")" ĊĠĠĠĠĠĠĠ Ġreturn Ġmapping ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Mapping Annotation ( endpoint : ĠEndpoint ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"@ ${ endpoint . method . method . capitalize Ġ() } Mapping " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquote ( content : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ'"' Ġ+ Ġcontent Ġ+ Ġ'"' ĊĠĠĠ Ġ} Ċ Ċ } Ċ