/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġkotlinx . serialization Ċ Ċ import Ġkotlinx . serialization . descriptors .* Ċ Ċ @ Serial Info Ċ @ Target ( Annotation Target . PROPERTY ) Ċ annotation Ġclass ĠId ( val Ġid : ĠInt ) Ċ Ċ public Ġfun Ġget Serial Id ( desc : ĠSerial Descriptor , Ġindex : ĠInt ): ĠInt ? ĊĠĠĠĠĠĠĠ Ġ= Ġdesc . find Annotation < Id >( index )?. id Ċ Ċ public Ġinline Ġfun Ġ< re ified ĠA : ĠAnnotation > ĠSerial Descriptor . find Annotation ( element Index : ĠInt ): ĠA ? Ġ{ ĊĠĠĠ Ġval Ġcandidates Ġ= Ġget Element Annotations ( element Index ). filter Is Instance < A >() ĊĠĠĠ Ġreturn Ġwhen Ġ( candidates . size ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠ 1 Ġ-> Ġcandidates [ 0 ] ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" There Ġare Ġduplicate Ġannotations Ġof Ġtype Ġ${ A :: class } Ġin Ġthe Ġdescriptor Ġ$ this ") ĊĠĠĠ Ġ} Ċ } Ċ