package Ġcc . ch ord flower . template . basic . application . converter Ċ Ċ import Ġcc . ch ord flower . template . basic . application . controllers . MediaType Ċ import Ġcom . fasterxml . jackson . data format . smile . databind . Sm ile Mapper Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠClass Ġthat Ġconverts Ġan Ġobject Ġto Ġand Ġfrom Ġa Ġsm ile Ġbyte Ġarray . Ċ Ġ*/ Ċ @ Singleton Ċ @ Named Ċ open Ġclass ĠSm ile Body Converter Ġ@ Inject Ġconstructor ( private Ġval Ġsm ile Mapper : ĠSm ile Mapper ) Ġ: ĠBody Converter Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġtrue Ġif Ġthe Ġmedia Ġtype Ġrepresents Ġa Ġsm ile Ġmedia Ġtype . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġmedia Type ĠThe Ġmedia Ġtype Ġto Ġcheck Ġfor Ġconversion . ĊĠĠ Ġ* Ġ@ return ĠTrue , Ġif Ġthe Ġconversion Ġis Ġpossible . ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġcan Convert ( media Type : ĠMediaType ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠ Ġmedia Type . media Type . endsWith ("+ smile ", Ġtrue ) Ġ-> Ġtrue ĊĠĠĠĠĠ ĠMediaType . APPLICATION _ SM ILE Ġ== Ġmedia Type Ġ-> Ġtrue ĊĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConverts Ġa Ġsm ile Ġbyte Ġarray Ġinto Ġthe Ġdest iny Ġclass Ġif Ġpossible . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsource ĠThe Ġsource Ġbyte Ġarray . ĊĠĠ Ġ* Ġ@ param Ġdest iny ĠThe Ġclass Ġof Ġthe Ġdest iny Ġtype . ĊĠĠ Ġ* Ġ@ return ĠThe Ġconverted Ġbyte Ġarray . ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġ< T > ĠconvertTo ( source : ĠByteArray , Ġdest iny : ĠClass < T >): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġthis . smile Mapper . readValue ( source , Ġdest iny ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConverts Ġa Ġsource Ġobject Ġinto Ġa Ġsm ile Ġbyte Ġarray . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsource ĠThe Ġsource Ġobject . ĊĠĠ Ġ* Ġ@ return ĠA Ġbyte Ġarray Ġrepresenting Ġthe Ġobject . ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġ< T > Ġconvert From ( source : ĠT ): ĠByteArray Ġ{ ĊĠĠĠ Ġreturn Ġthis . smile Mapper . writeValue As Bytes ( source ) ĊĠ Ġ} Ċ } Ċ