package Ġcom . art f able . telegram . api . utils Ċ Ċ import Ġkotlin . reflect . K Property 1 Ċ import Ġkotlin . reflect . K Type Projection Ċ import Ġkotlin . reflect . full . create Type Ċ import Ġkotlin . reflect . full . is Subtype Of Ċ import Ġkotlin . reflect . full . member Properties Ċ Ċ /** Ċ Ġ* ĠHelper Ġclass Ġwith Ġutils Ċ Ġ* Ċ Ġ* Ġ@ author Ġa ve se lov Ċ Ġ* Ġ@ since Ġ 2 2 / 0 1 / 2 0 2 1 Ċ Ġ*/ Ċ Ċ fun ĠAny . notNull Fields ToString (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ"${ this :: class . simple Name } (${ ĊĠĠĠĠĠĠĠ Ġthis :: class . member Properties . as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġfield Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġfield . getter . call ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġfield . name Ġ+ Ġ"=" Ġ+ Ġif Ġ( is Primitive ( field )) Ġvalue Ġelse Ġvalue . notNull Fields ToString () Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString () ĊĠĠĠ Ġ}) " Ċ } Ċ Ċ private Ġfun Ġis Primitive ( field : ĠK Property 1 < out ĠAny , Ġ* >): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġfield . returnType . is Subtype Of ( Number :: class . create Type ( nullable Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġfield . returnType . is Subtype Of ( Boolean :: class . create Type ( nullable Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġfield . returnType . is Subtype Of ( String :: class . create Type ( nullable Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġfield . returnType . is Subtype Of ( Enum :: class . create Type ( listOf ( K Type Projection ( null , Ġnull )), Ġtrue )) Ċ }