/* - Ċ Ġ* Ġ================================================= ======== Begin License Ċ Ġ* ĠReactive ĠKafka Ċ Ġ* Ġ. Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠHi P ĠProperty Ċ Ġ* Ġ. Ċ Ġ* Ġ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 . Ċ Ġ* Ġ================================================= ========== End License Ċ Ġ*/ Ċ package Ġcom . hip . kafka . reactor . streams Ċ Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġreactor . core . publisher . Flux Ċ import Ġkotlin . reflect . K Class Ċ Ċ interface ĠStream Binder Ġ{ ĊĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġconsume Flux Of ( type : ĠK Class < T >): ĠFlux < T > ĊĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġpublish ( flux : ĠFlux < T >) Ċ } Ċ Ċ /** Ċ Ġ* ĠService Ġlocator Ġto Ġexpose Ġinput Ġand Ġoutput Ġstreams Ġof Ġdata Ġto Ġkafka Ċ Ġ* Ċ Ġ* Ġtodo Ġreplace Ġwith Ġdirect Ġspring Ġinjection Ġof Ġeach Ġflux Ġ[ https :// gitlab . com / hip property / platform / issues / 1 9 1 ] Ċ Ġ*/ Ċ @ Component Ċ class ĠStream Binder Impl ( private Ġval Ġinput Streams : ĠInput Streams , Ġprivate Ġval Ġoutput Streams : ĠOutput Streams ): ĠStream Binder Ġ{ ĊĊĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠAny > Ġconsume Flux Of ( type : ĠK Class < T >): ĠFlux < T > Ġ{ ĊĠĠĠĠĠ Ġreturn Ġinput Streams . flux ( type ) ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠAny > Ġpublish ( flux : ĠFlux < T >) Ġ{ ĊĠĠĠĠĠ Ġoutput Streams . add Stream ( flux ) ĊĠĠ Ġ} Ċ } Ċ