/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 5 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . jetbrains . kotlin . serialization . builtins Ċ Ċ import Ġorg . jetbrains . kotlin . metadata . Proto Buf Ċ import Ġorg . jetbrains . kotlin . metadata . builtins . Built Ins Binary Version Ċ import Ġorg . jetbrains . kotlin . metadata . de serialization . Binary Version Ċ import Ġorg . jetbrains . kotlin . serialization . Annotation Serializer Ċ import Ġorg . jetbrains . kotlin . serialization . Kotlin Serializer Extension Base Ċ import Ġorg . jetbrains . kotlin . serialization . de serialization . builtins . BuiltIn Serializer Protocol Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ import Ġorg . jetbrains . kotlin . types . Un resolved Type Ċ Ċ class ĠBuilt Ins Serializer Extension Ġ: ĠKotlin Serializer Extension Base ( BuiltIn Serializer Protocol ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġshort Name To Class Id Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" Int Range " Ġto Ġ" kotlin / ranges / Int Range ", ĊĠĠĠĠĠĠĠ Ġ" Long Range " Ġto Ġ" kotlin / ranges / Long Range ", ĊĠĠĠĠĠĠĠ Ġ" Char Range " Ġto Ġ" kotlin / ranges / Char Range " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Annotation Serializer (): ĠAnnotation Serializer Ġ= Ġobject Ġ: ĠAnnotation Serializer ( string Table ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġignore Annotation ( type : ĠKotlin Type ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype . present able Name Ġ== Ġ" Jvm Static " Ġ|| Ġtype . present able Name Ġ== Ġ" Jvm Field " Ġ|| Ġsuper . ignore Annotation ( type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġmetadata Version : ĠBinary Version ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠBuilt Ins Binary Version . INSTANCE ĊĊĠĠĠ Ġoverride Ġfun Ġshould Use Type Table (): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ErrorType ( type : ĠKotlin Type , Ġbuilder : ĠProto Buf . Type . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= Ġshort Name To Class Id [ type . present able Name ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠUnsupportedOperationException (" Unsupported Ġun resolved Ġtype : Ġ${ type . unwrap () }") ĊĊĠĠĠĠĠĠĠ Ġbuilder . className Ġ= Ġstring Table . get Qualified ClassName Index ( className , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠKotlin Type . present able Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġun wrapped Ġ= Ġunwrap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( un wrapped Ġ! is ĠUn resolved Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" Error Ġtypes Ġwhich Ġare Ġnot ĠUn resolved Type Ġinstances Ġare Ġnot Ġsupported Ġhere : Ġ$ un wrapped ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġun wrapped . present able Name ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ