package Ġnet . nem eros a . on track . graphql . support Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġnet . nem eros a . on track . model . annotations . AP ID escription Ċ import Ġnet . nem eros a . on track . model . annotations . AP IN ame Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Property Ċ import Ġkotlin . reflect . full . find Annotation Ċ Ċ /** Ċ Ġ* ĠGetting Ġthe Ġtype Ġname Ġfor Ġa Ġclass . Ċ Ġ* Ċ Ġ* ĠWill Ġuse Ġby Ġorder Ġto Ġpriority : Ċ Ġ* Ċ Ġ* Ġ# Ġthe Ġprovided Ġ[ name ] Ġif Ġany Ċ Ġ* Ġ# Ġthe Ġ[ AP IN ame ] Ġannotation Ġif Ġany Ċ Ġ* Ġ# Ġthe Ġsimple Ġname Ġof Ġthe Ġclass Ċ Ġ*/ Ċ fun Ġget TypeName ( type : ĠK Class <* >, Ġname : ĠString ? Ġ= Ġnull ): ĠString Ġ= ĊĠĠĠ Ġname ĊĠĠĠĠĠĠĠ Ġ?: Ġtype . find Annotation < AP IN ame >() ?. value ĊĠĠĠĠĠĠĠ Ġ?: Ġtype . java . simple Name Ċ Ċ /** Ċ Ġ* ĠGetting Ġthe Ġdescription Ġfor Ġa Ġclass . Ċ Ġ* Ċ Ġ* ĠWill Ġuse Ġby Ġorder Ġto Ġpriority : Ċ Ġ* Ċ Ġ* Ġ# Ġthe Ġprovided Ġ[ description ] Ġif Ġany Ċ Ġ* Ġ# Ġthe Ġ[ AP ID escription ] Ġannotation Ġif Ġany Ċ Ġ* Ġ# Ġa Ġgenerated Ġstring Ġbased Ġon Ġthe Ġtype Ġname Ċ Ġ*/ Ċ fun ĠgetType Description ( type : ĠK Class <* >, Ġdescription : ĠString ? Ġ= Ġnull ): ĠString Ġ= ĊĠĠĠ Ġdescription ĊĠĠĠĠĠĠĠ Ġ?: Ġtype . find Annotation < AP ID escription >() ?. value ĊĠĠĠĠĠĠĠ Ġ?: Ġtype . java . simple Name Ċ Ċ /** Ċ Ġ* ĠGetting Ġthe Ġdescription Ġfor Ġa Ġproperty . Ċ Ġ* Ċ Ġ* ĠWill Ġuse Ġfirst Ġthe Ġprovided Ġ[ description ], Ġthen Ġany Ġ[ AP ID escription ] Ġattached Ġto Ġthe Ġproperty Ċ Ġ* Ġand Ġas Ġa Ġfallback , Ġa Ġgenerated Ġstring Ġbased Ġon Ġthe Ġproperty Ġname . Ċ Ġ*/ Ċ fun ĠgetProperty Description ( property : ĠK Property <* >, Ġdescription : ĠString ? Ġ= Ġnull ): ĠString Ġ= ĊĠĠĠ Ġdescription ĊĠĠĠĠĠĠĠ Ġ?: Ġproperty . find Annotation < AP ID escription >() ?. value ĊĠĠĠĠĠĠĠ Ġ?: Ġ"${ getProperty Name ( property )} Ġfield " ĊĊ Ċ /** Ċ Ġ* ĠGetting Ġthe Ġname Ġfor Ġa Ġproperty . Ċ Ġ* Ċ Ġ* ĠWill Ġuse Ġin Ġorder : Ċ Ġ* Ċ Ġ* Ġ# Ġany Ġ[ AP IN ame ] Ġannotation Ċ Ġ* Ġ# Ġany Ġ[ JsonProperty ] Ġannotation Ġon Ġthe Ġproperty Ċ Ġ* Ġ# Ġany Ġ[ JsonProperty ] Ġannotation Ġon Ġthe Ġgetter Ċ Ġ* Ġ# Ġthe Ġproperty Ġname Ċ Ġ*/ Ċ fun Ġget PropertyName ( property : ĠK Property < *> ): ĠString Ġ= ĊĠĠĠ Ġproperty . find Annotation < AP IN ame >() ?. value ĊĠĠĠĠĠĠĠ Ġ?: Ġproperty . find Annotation < JsonProperty >() ?. value ĊĠĠĠĠĠĠĠ Ġ?: Ġproperty . getter . find Annotation < JsonProperty >() ?. value ĊĠĠĠĠĠĠĠ Ġ?: Ġproperty . name Ċ