package Ġit . uni bo . tup ro log . core . impl Ċ Ċ import Ġit . uni bo . tup ro log . core . Integer Ċ import Ġit . uni bo . tup ro log . core . Numeric Ċ import Ġit . uni bo . tup ro log . core . Term Ċ import Ġorg . g ci at to . kt . math . BigDecimal Ċ import Ġorg . g ci at to . kt . math . BigInteger Ċ Ċ @ Suppress (" Equals Or HashCode ") Ċ internal Ġclass ĠInteger Impl ( override Ġval Ġvalue : ĠBigInteger ) Ġ: ĠNumeric Impl (), ĠInteger Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdecimal Value : ĠBigDecimal Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠBigDecimal . of ( intValue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġint Value : ĠBigInteger Ġ= Ġvalue ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġvalue . toString () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull Ġ|| Ġother Ġ! is ĠInteger ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġequals To Integer ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" NOTH ING _ TO _ INLINE ") ĊĠĠĠ Ġprivate Ġinline Ġfun Ġequals To Integer ( other : ĠInteger ) Ġ= ĊĠĠĠĠĠĠĠ Ġvalue . compareTo ( other . value ) Ġ== Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠTerm , Ġuse Var Complete Name : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġother Ġis ĠInteger Ġ&& Ġequals To Integer ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠhashCode Cache : ĠInt Ġby Ġlazy Ġ{ Ġvalue . hashCode () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare Value To ( other : ĠNumeric ): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( other ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInteger Ġ-> Ġvalue . compareTo ( other . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper < Numeric Impl >. compare Value To ( other ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ