package Ġpl . to uk . kr ush . meta Ċ Ċ import Ġcom . squareup . kotlin po et . ClassName Ċ import Ġcom . squareup . kotlin po et . metadata . Immutable Km Class Ċ import Ġcom . squareup . kotlin po et . metadata . Immutable Km Type Ċ import Ġcom . squareup . kotlin po et . metadata . Kotlin Po et Metadata Preview Ċ import Ġkotlinx . metadata . Km Classifier Ċ import Ġorg . jetbrains . annotations . NotNull Ċ import Ġorg . jetbrains . annotations . Nullable Ċ import Ġpl . to uk . kr ush . model . Type Ċ import Ġjavax . lang . model . element . Variable Element Ċ Ċ private Ġfun ĠList < String >. packageName () Ġ= Ġthis . drop Last ( 1 ). join ToString ( separator Ġ= Ġ". ") Ċ Ċ @ Kotlin Po et Metadata Preview Ċ fun ĠImmutable Km Class . to ClassName (): ĠClass Name Ġ{ ĊĠĠĠ Ġreturn Ġthis . name . split ("/ "). let Ġ{ ĠClass Name ( it . packageName (), Ġit . last ()) Ġ} Ċ } Ċ Ċ @ Kotlin Po et Metadata Preview Ċ fun ĠImmutable Km Type . to Model Type (): ĠType Ġ{ ĊĠĠĠ Ġreturn Ġwhen ( val Ġclassifier Ġ= Ġ( this . abbre vi ated Type ?. classifier Ġ?: Ġthis . classifier )){ ĊĠĠĠĠĠĠĠ Ġis ĠK m Classifier . Class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclassifier . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. split ("/ "). let Ġ{ ĠType ( it . packageName (), Ġit . last ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠK m Classifier . Type Alias Ġ-> Ġclassifier . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. split ("/ "). let Ġ{ ĠType ( it . packageName (), Ġit . last (), Ġthis . copy ( abbre vi ated Type Ġ= Ġnull ). to Model Type ()) Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠK m Classifier . Type Parameter Ġ-> ĠTODO () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠVariable Element . is Nullable () Ġ= ĊĠĠĠ Ġthis . getAnnotation ( NotNull :: class . java ) Ġ== Ġnull Ġ&& Ġthis . getAnnotation ( Nullable :: class . java ) Ġ!= Ġnull Ċ