package Ġcom . xm art labs . big bang . core . helper Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġjava . util . UUID Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠObject Helper Ġ@ Inject Ċ constructor ( val Ġgson : ĠGson ) Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerates Ġa Ġrandom ĠUUID Ġusing Ġthe Ġ[ UUID ] Ġclass . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġstring Ġform Ġof Ġthe Ġgenerated ĠUUID ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate UUID () Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp ares Ġthe Ġtwo Ġgiven Ġints , Ġ` x ` Ġand Ġ` y `, Ġyield ing Ġthe Ġfollowing Ġresult : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ- 1 Ġif Ġ` x ` Ġ& lt ; Ġ` y ` ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ 0 Ġif Ġ` x ` Ġ== Ġ` y ` ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ 1 Ġif Ġ` x ` Ġ& gt ; Ġ` y ` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġx Ġthe Ġfirst Ġint Ġto Ġcompare . ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġy Ġthe Ġsecond Ġint Ġto Ġcompare . ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġdifference Ġbetween Ġ` x ` Ġand Ġ` y ` Ġas Ġexplained Ġabove . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcompare ( x : ĠInt , Ġy : ĠInt ) Ġ= Ġif Ġ( x Ġ< Ġy ) Ġ- 1 Ġelse Ġif Ġ( x Ġ== Ġy ) Ġ 0 Ġelse Ġ 1 ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠUses Ġ[ Gson ] Ġto Ġperform Ġa Ġdeep Ġcopy Ġof Ġthe Ġ` object `, Ġwhich Ġshould Ġresult Ġin Ġan Ġobject Ġof Ġtype ĊĠĠ Ġ* Ġ` result Class `. ĊĠĠ Ġ* Ġ@ param Ġobject Ġthe Ġobject Ġto Ġcopy . ĊĠĠ Ġ* Ġ* ĊĠĠ Ġ* Ġ@ param Ġ< T > Ġthe Ġtype Ġof Ġthe Ġresulting Ġcopied Ġobject . ĊĠĠ Ġ* Ġ* ĊĠĠ Ġ* Ġ@ return Ġa Ġnew Ġinstance Ġof Ġtype ĠT Ġcopied Ġfrom Ġ` object `. ĊĠ Ġ</ T > Ġ*/ ĊĠ Ġinline Ġfun Ġ< re ified ĠT > Ġdeep Copy (` object `: ĠAny ): ĠT Ġ{ ĊĠĠĠ Ġval Ġjson Ġ= Ġgson . toJson (` object `) ĊĠĠĠ Ġreturn Ġgson . fromJson ( json , ĠT :: class . java ) ĊĠ Ġ} Ċ } ĊĊ