/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 ĠSquare ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . squareup . wire Ċ Ċ import Ġandroid . os . Parcel Ċ import Ġandroid . os . Parcelable Ċ import Ġok io . ByteString Ċ import Ġjava . lang . reflect . Array . newInstance Ċ Ċ /** ĠAn ĠAndroid - specific Ġ[ Message ] Ġwhich Ġadds Ġsupport Ġfor Ġ[ Parcelable ]. Ġ*/ Ċ abstract Ġclass ĠAndroid Message < M Ġ: ĠMessage < M , ĠB >, ĠB Ġ: ĠMessage . Builder < M , ĠB >> Ġprotected Ġconstructor ( ĊĠ Ġadapter : ĠProto Adapter < M >, ĊĠ ĠunknownFields : ĠByte String Ċ ) Ġ: ĠMessage < M , ĠB >( adapter , ĠunknownFields ), ĠParcel able Ġ{ ĊĊĠ Ġoverride Ġfun ĠwriteTo Parcel ( dest : ĠParcel , Ġflags : ĠInt ) Ġ{ ĊĠĠĠ Ġdest . write ByteArray ( encode ()) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġdescribe Contents () Ġ= Ġ 0 ĊĊĠ Ġprivate Ġclass ĠProto Adapter Creator < M > Ġinternal Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġadapter : ĠProto Adapter < M > ĊĠ Ġ) Ġ: ĠParcel able . Creator < M > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate From Parcel ( input : ĠParcel ): ĠM Ġ= Ġadapter . decode ( input . create ByteArray ()) ĊĊĠĠĠ Ġoverride Ġfun Ġnew Array ( size : ĠInt ): ĠArray < M > Ġ= ĊĠĠĠĠĠ Ġnew Instance ( adapter . type ?. java ObjectType , Ġsize ) Ġas ĠArray < M > ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĠCreates Ġa Ġnew Ġ[ Parcelable . Creator ] Ġusing Ġ` adapter ` Ġfor Ġserialization . Ġ*/ ĊĠĠĠ Ġ@ Jvm Static Ġfun Ġ< E > Ġnew Creator ( adapter : ĠProto Adapter < E >): ĠParcel able . Creator < E > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠProto Adapter Creator ( adapter ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ