package Ġs late kit . common . types Ċ Ċ /** Ċ Ġ* ĠRepresents Ġstring Ġcontent Ġwith Ġtype / format Ġinformation . Ċ Ġ* Ċ Ġ* ĠUse Ġcases : Ċ Ġ* Ġ 1 . ĠProvide Ġtype Ġinfo Ġon Ġa Ġstring Ċ Ġ* Ġ 2 . ĠProvide Ġintent Ġthat Ġthe Ġstring Ġshould Ġbe Ġtreated Ġas Ġcontent Ġinstead Ġof Ġa Ġfile Ġ( ĠSee ĠDoc . kt Ġ) Ċ Ġ* Ġ 3 . ĠProvide Ġa Ġway Ġfor Ġconsumers Ġto Ġinfer Ġthe Ġintent Ġof Ġthe Ġstring . Ċ Ġ* ĠĠĠ Ġe . g . Ġthe ĠAPI Ġserver Ġcan Ġdetermine Ġthat Ġif Ġa Ġservice Ġreturns Ġa ĠContent Ġinstead Ġof Ġa Ġstring , Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġthen Ġthe ĠContent Ġcan Ġbe Ġsent Ġback Ġwith Ġa Ġspecific Ġcontent - type Ġfor Ġhttp . Ċ Ġ* Ċ Ġ*/ Ċ interface ĠContent Ġ{ ĊĠĠĠ Ġval Ġdata : ĠByteArray ĊĠĠĠ Ġval Ġt pe Ġ: ĠContentType ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġwhether Ġthis Ġcontent Ġis Ġempty ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠisEmpty : ĠBoolean Ġget () Ġ{ Ġreturn Ġdata . isEmpty () Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġwhether Ġthis Ġcontent Ġis Ġpresent ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Defined : ĠBoolean Ġget () Ġ{ Ġreturn Ġ! isEmpty Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġthe Ġlength Ġof Ġthe Ġcontent ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġsize : ĠInt Ġget () Ġ{ Ġreturn Ġdata . size Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠContent Text ( override Ġval Ġdata : ByteArray , Ġval Ġraw : String , Ġoverride Ġval Ġt pe : ĠContentType ) Ġ: ĠContent Ċ class ĠContent Data ( override Ġval Ġdata : ByteArray , Ġval Ġraw : String ?, Ġoverride Ġval Ġt pe : ĠContentType ) Ġ: ĠContent Ċ class ĠContent File ( val Ġname : String , Ġoverride Ġval Ġdata : ByteArray , Ġval Ġraw : String ?, Ġoverride Ġval Ġt pe : ĠContentType ) Ġ: ĠContent Ċ data Ġclass ĠContent Multi ( val Ġfields : Map < String , ĠContent Text >, Ġval Ġfiles : Map < String , Content File >) Ċ Ċ object ĠContents Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcsv ( text : ĠString ): ĠContent Ġ= ĠContent Text ( text . toByteArray (), Ġtext , ĠContent Types . Csv ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġhtml ( text : ĠString ): ĠContent Ġ= ĠContent Text ( text . toByteArray (), Ġtext , ĠContent Types . Html ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġjson ( text : ĠString ): ĠContent Ġ= ĠContent Text ( text . toByteArray (), Ġtext , ĠContent Types . Json ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext ( text : ĠString ): ĠContent Ġ= ĠContent Text ( text . toByteArray (), Ġtext , ĠContent Types . Plain ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġxml ( text : ĠString ): ĠContent Ġ= ĠContent Text ( text . toByteArray (), Ġtext , ĠContent Types . Xml ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġother ( text : ĠString , Ġt pe : ĠContentType ): ĠContent Ġ= ĠContent Text ( text . toByteArray (), Ġtext , Ġt pe ) ĊĊĠĠĠ Ġfun Ġto Text ( content : Content ?): String ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠContent Text Ġ-> Ġcontent . raw Ġ?: ĠString ( content . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠContent Data Ġ-> Ġcontent . raw Ġ?: ĠString ( content . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠString ( content . data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ