/* Ċ Ġ* ĠSh ards Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) ĠL an tern Power ed Ġ< https :// www . lan tern powered . org > Ċ Ġ* ĠCopyright Ġ( c ) Ġcontributors Ċ Ġ* Ċ Ġ* ĠThis Ġwork Ġis Ġlicensed Ġunder Ġthe Ġterms Ġof Ġthe ĠMIT ĠLicense Ġ( MIT ). ĠFor Ċ Ġ* Ġa Ġcopy , Ġsee Ġ' LICENSE . txt ' Ġor Ġ< https :// opensource . org / licenses / MIT >. Ċ Ġ*/ Ċ @ file : Suppress (" FunctionName ") Ċ Ċ package Ġorg . lan tern powered . shards . util Ċ Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Classifier Ċ import Ġkotlin . reflect . K Type Ċ import Ġkotlin . reflect . type Of Ċ Ċ /** Ċ Ġ* ĠConstructs Ġa Ġ[ GenericType ] Ġfor Ġthe Ġgiven Ġtype Ġ[ T ]. Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > Ġgeneric TypeOf (): ĠGeneric Type < T > Ġ{ ĊĠ Ġval Ġtype Ġ= ĠtypeOf < T >() ĊĠ Ġreturn ĠGeneric Type ( type . classifier !! , Ġtype . is Marked Nullable , Ġtype ) Ċ } Ċ Ċ /** Ċ Ġ* ĠConstructs Ġa Ġnew Ġ[ GenericType ] Ġfrom Ġthe Ġgiven Ġ[ K Class ]. Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > ĠGeneric Type ( k Class : ĠK Class < T >): ĠGeneric Type < T > Ġ= ĊĠ ĠGeneric Type ( k Class , Ġis Nullable Ġ= Ġfalse ) Ċ Ċ /** Ċ Ġ* ĠConstructs Ġa Ġnew Ġ[ GenericType ] Ġfrom Ġthe Ġgiven Ġ[ K Type ]. Ċ Ġ*/ Ċ fun Ġ< T > ĠGeneric Type ( k Type : ĠK Type ): ĠGeneric Type < T > Ġ= ĊĠ ĠGeneric Type ( k Type . classifier !! , Ġk Type . is Marked Nullable , Ġk Type ) Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġ[ K Type ] Ġwith Ġa Ġgeneric Ġtype Ġparameter Ċ Ġ* Ġrepresenting Ġthe Ġtype . Ċ Ġ* Ċ Ġ* Ġ@ property ĠT ĠThe Ġgeneric Ġtype Ġof Ġthe Ġ[ K Type ] Ċ Ġ* Ġ@ property Ġclassifier ĠThe Ġclassifier Ġof Ġthis Ġgeneric Ġtype Ċ Ġ* Ġ@ property Ġis Nullable ĠWhether Ġthis Ġtype Ġis Ġnullable Ċ Ġ*/ Ċ class ĠGeneric Type < T > Ġ@ Published Api Ġinternal Ġconstructor ( ĊĠ Ġval Ġclassifier : ĠK Classifier , ĊĠ Ġval Ġis Nullable : ĠBoolean , ĊĠ Ġprivate Ġval Ġk Type : ĠK Type ? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConstructs Ġa Ġnew Ġ[ GenericType ] Ġwith Ġthe Ġgiven Ġ[ classifier ]. ĊĠĠ Ġ*/ ĊĠ Ġconstructor ( classifier : ĠK Classifier , Ġis Nullable : ĠBoolean Ġ= Ġfalse ) Ġ: ĊĠĠĠ Ġthis ( classifier , Ġis Nullable , Ġnull ) ĊĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= ĊĠĠĠ Ġother Ġis ĠGeneric Type < *> Ġ&& ĊĠĠĠĠĠ Ġother . classifier Ġ== Ġclassifier Ġ&& ĊĠĠĠĠĠ Ġother . is Nullable Ġ== Ġis Nullable ĊĊĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= ĊĠĠĠ Ġclassifier . hashCode () Ġ* Ġ 3 1 Ġ+ Ġis Nullable . hashCode () ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĊĠĠĠ Ġk Type ?. toString () Ġ?: Ġclassifier . toString () Ċ } Ċ