package Ġorg . k oin . android x . view model . ext . k oin Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġorg . k oin . android . view model . ViewModel Parameters Ċ import Ġorg . k oin . core . parameter . Parameter Definition Ċ import Ġorg . k oin . standalone . K oin Component Ċ import Ġorg . k oin . standalone . get Ċ Ċ /** Ċ Ġ* ĠCreate Ġinstance Ġwith Ġparameters Ġfor ĠViewModel Factory Ċ Ġ* Ġ@ see Ġimplemented ĠViewModel Factory Ċ Ġ* Ċ Ġ* Ġ@ param Ġp Ġ- ĠViewModel Parameters Ċ Ġ* Ġ@ param Ġclazz Ġ- Ġclass Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠViewModel > ĠK oin Component . create Instance ( p : ĠViewModel Parameters , Ġclazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠ Ġ// ĠGet Ġparams Ġto Ġpass Ġto Ġfactory ĊĠĠĠ Ġval Ġname Ġ= Ġp . name ĊĠĠĠ Ġval Ġparams Ġ= Ġp . parameters ĊĠĠĠ Ġ// ĠClear Ġlocal Ġstuff ĊĊĠĠĠ Ġreturn Ġif Ġ( name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġretrieve ViewModel ( clazz , Ġname , Ġparams ) ĊĠĠĠ Ġ} Ġelse Ġretrieve ViewModel ( clazz , Ġparams ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRetrieve ĠViewModel ĠInstance Ġfrom Ġclass / name Ċ Ġ*/ Ċ internal Ġfun Ġ< T Ġ: ĠViewModel > ĠK oin Component . retrieve ViewModel ( ĊĠĠĠ Ġclazz : ĠClass < T >, ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġparams : ĠParameter Definition Ċ ): ĠT Ġ= Ġget ( name , Ġclazz . kotlin , Ġparams , Ġis ViewModel ) Ċ Ċ /** Ċ Ġ* ĠRetrieve ĠViewModel ĠInstance Ġfrom Ġclass Ċ Ġ*/ Ċ internal Ġfun Ġ< T Ġ: ĠViewModel > ĠK oin Component . retrieve ViewModel ( ĊĠĠĠ Ġclazz : ĠClass < T >, ĊĠĠĠ Ġparams : ĠParameter Definition Ċ ): ĠT Ġ= Ġget ( clazz Ġ= Ġclazz . kotlin , Ġparameters Ġ= Ġparams , Ġfilter Ġ= Ġis ViewModel )