package Ġme . xx 2 bab . kon cat . api Ċ Ċ import Ġcom . google . devtools . k sp . containing File Ċ import Ġcom . google . devtools . k sp . symbol . KS Annotated Ċ import Ġcom . google . devtools . k sp . symbol . KS File Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . Transient Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json . Json Ċ Ċ class ĠKon cat Proc Metadata Holder ( private Ġval Ġkon cat Extend Annotated Element : ĠK S Annotated ) Ġ{ ĊĊĠĠĠ Ġval Ġdependency : ĠK S File Ġ= Ġkon cat Extend Annotated Element . containing File !! ĊĊĠĠĠ Ġfun Ġresolve (): ĠKon cat Proc Metadata Ġ= ĠJson . decode FromString ( ĊĠĠĠĠĠĠĠ Ġkon cat Extend Annotated Element ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. annotations . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. arguments . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. value . toString () ĊĠĠĠ Ġ) Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠTODO : Ġbreak Ġdown Ġthe Ġ[ Kon cat Proc Metadata ] Ġto Ġsub Ġprocessors Ċ Ġ*/ Ċ @ Serializable Ċ data Ġclass ĠKon cat Proc Metadata ( ĊĠĠĠ Ġval Ġannotated Classes : ĠMutable Annotated Classes Ġ= Ġmutable Map Of (), ĊĠĠĠ Ġval Ġtyped Classes : ĠMutable Map < String , ĠMutable List < String >> Ġ= Ġmutable Map Of (), ĊĠĠĠ Ġval Ġtyped Properties : ĠMutable Map < String , ĠMutable List < String >> Ġ= Ġmutable Map Of (), ĊĠĠĠ Ġ@ Transient Ġval Ġmap KS Files : ĠMutable List < KS File > Ġ= Ġmutable ListOf () Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġelement Size (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( annotated Classes . map Ġ{ Ġit . value . size Ġ}. sum () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġtyped Classes . map Ġ{ Ġit . value . size Ġ}. sum () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġtyped Properties . map Ġ{ Ġit . value . size Ġ}. sum ()) ĊĠĠĠ Ġ} Ċ } Ċ type alias ĠMutable Annotated Classes Ġ= ĠMutable Map < String , ĠMutable List < Class Declaration Record >> Ċ Ċ @ Serializable Ċ data Ġclass ĠClass Declaration Record ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġannotations : ĠList < Annotation Record > Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠAnnotation Record ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġarguments : ĠMap < String , ĠString > Ċ ) ĊĊ