package Ġio . hol ix on . ax on . gateway . query Ċ Ċ import Ġcom . fasterxml . jackson . annotation . Json Creator Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġorg . ax on framework . common . Reflection Utils Ċ import Ġorg . ax on framework . messaging . MetaData Ċ import Ġorg . ax on framework . messaging . respon set ypes . Abstract ResponseType Ċ import Ġorg . ax on framework . messaging . respon set ypes . ResponseType Ċ import Ġorg . ax on framework . query handling . Generic Query Response Message Ċ import Ġorg . ax on framework . query handling . Generic Subscription Query Update Message Ċ import Ġorg . ax on framework . query handling . Query Response Message Ċ import Ġorg . ax on framework . query handling . Subscription Query Update Message Ċ import Ġjava . beans . Constructor Properties Ċ import Ġjava . lang . reflect . Type Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠAllows Ġthe Ġquery Ġhandlers Ġto Ġuse Ġ[ Query Response Message ] Ġas Ġresponse Ġtype Ċ Ġ* Ġof Ġthe Ġquery Ġhandlers . ĠThis Ġis Ġhelpful , Ġif Ġyou Ġwant Ġto Ġcontrol Ġhow Ġthe Ċ Ġ* Ġmessage Ġis Ġconstructed Ġand Ġwhat Ġmeta Ġdata Ġgets Ġin . ĠSee Ġhelper Ġstatic Ġmethods Ġfor Ġmore Ġdetails . Ċ Ġ*/ Ċ class ĠQuery Response Message ResponseType < T Ġ: ĠAny > Ġ: ĠAbstract ResponseType < T > Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġresponse Ġtype Ġfor Ġquery Ġresponse Ġmessage . ĠThis Ġallows Ġyour Ġquery Ġhandler Ġto Ġwrap Ġthe Ġresponse Ġinto Ġa Ġquery Ġresponse Ġmessage Ġand Ġprovide Ġsome Ġmeta Ġdata . ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ T ] Ġtype Ġof Ġpayload ĊĠĠĠĠ Ġ* Ġ@ return Ġquery Ġresponse Ġmessage Ġreturn Ġtype . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġquery Response Message ResponseType () Ġ= ĠQuery Response Message ResponseType ( T :: class ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġquery Ġresponse Ġmessage Ġwith Ġgiven Ġpayload . ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ T ] Ġresponse Ġpayload Ġtype . ĊĠĠĠĠ Ġ* Ġ@ param Ġpayload Ġpayload Ġvalue . ĊĠĠĠĠ Ġ* Ġ@ return Ġmessage Ġto Ġbe Ġreturned Ġby Ġthe Ġquery Ġhandler . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Query Response Message ( payload : ĠAny ?): ĠQuery Response Message < T > Ġ= ĠGeneric Query Response Message . as Nullable Response Message ( T :: class . java , Ġpayload ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġquery Ġresponse Ġmessage Ġwith Ġgiven Ġpayload Ġand Ġmetadata . ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ T ] Ġresponse Ġpayload Ġtype . ĊĠĠĠĠ Ġ* Ġ@ param ĠmetaData Ġmeta Ġdata Ġto Ġbe Ġwritten Ġinto Ġthe Ġmessage . ĊĠĠĠĠ Ġ* Ġ@ param Ġpayload Ġpayload Ġvalue . ĊĠĠĠĠ Ġ* Ġ@ return Ġmessage Ġto Ġbe Ġreturned Ġby Ġthe Ġquery Ġhandler . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Query Response Message ( payload : ĠAny ?, ĠmetaData : ĠMeta Data ): ĠQuery Response Message < T > Ġ= ĠGeneric Query Response Message ĊĠĠĠĠĠĠĠ Ġ. as Nullable Response Message ( T :: class . java , Ġpayload ) ĊĠĠĠĠĠĠĠ Ġ. and MetaData ( metaData ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġquery Ġsubscription Ġupdate Ġmessage Ġwith Ġgiven Ġpayload . ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ T ] Ġresponse Ġpayload Ġtype . ĊĠĠĠĠ Ġ* Ġ@ param Ġpayload Ġpayload Ġvalue . ĊĠĠĠĠ Ġ* Ġ@ return Ġmessage Ġto Ġbe Ġpassed Ġto Ġquery Ġupdate Ġemitter . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Subscription Update Message ( payload : ĠAny ?): ĠSubscription Query Update Message < T > Ġ= ĠGeneric Subscription Query Update Message ĊĠĠĠĠĠĠĠ Ġ. as Update Message < T >( payload ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġquery Ġsubscription Ġupdate Ġmessage Ġwith Ġgiven Ġpayload Ġand Ġmetadata . ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ T ] Ġresponse Ġpayload Ġtype . ĊĠĠĠĠ Ġ* Ġ@ param ĠmetaData Ġmeta Ġdata Ġto Ġbe Ġwritten Ġinto Ġthe Ġmessage . ĊĠĠĠĠ Ġ* Ġ@ param Ġpayload Ġpayload Ġvalue . ĊĠĠĠĠ Ġ* Ġ@ return Ġmessage Ġto Ġbe Ġpassed Ġto Ġquery Ġupdate Ġemitter . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Subscription Update Message ( payload : ĠAny ?, ĠmetaData : ĠMeta Data ): ĠSubscription Query Update Message < T > Ġ= ĠGeneric Subscription Query Update Message ĊĠĠĠĠĠĠĠ Ġ. as Update Message < T >( payload ) ĊĠĠĠĠĠĠĠ Ġ. and MetaData ( metaData ) ĊĊĊĠ Ġ} ĊĊĠ Ġ@ Json Creator ĊĠ Ġ@ Constructor Properties (" expected ResponseType ") ĊĠ Ġconstructor (@ JsonProperty (" expected ResponseType ") Ġclazz : ĠK Class < T >) Ġ: Ġsuper ( clazz . java ) ĊĊĠ Ġoverride Ġfun Ġmatches ( response Type : ĠType ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġun wrapped Ġ= ĠReflection Utils . unwrap If Type ( response Type , ĠQuery Response Message :: class . java ) ĊĠĠĠ Ġreturn Ġis Generic AssignableFrom ( un wrapped ) Ġ|| Ġis AssignableFrom ( un wrapped ) ĊĠ Ġ} ĊĊĠ Ġ@ SuppressWarnings (" unchecked ") ĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġoverride Ġfun Ġresponse Message Payload Type (): ĠClass < T > Ġ{ ĊĠĠĠ Ġreturn Ġexpected ResponseType Ġas ĠClass < T > ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġoverride Ġfun Ġfor Serialization (): ĠResponse Type < T > Ġ{ ĊĠĠĠ Ġreturn Ġsuper . for Serialization () Ġas ĠResponse Type < T > ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" Query Response Message ResponseType {$ expected ResponseType }" ĊĠ Ġ} Ċ } Ċ