package Ġcom . k ry ther a . audit . items Ċ Ċ import Ġcom . k ry ther a . audit . db . Audit Event Ċ import Ġjava . time . Instant Ċ import Ġjava . util . UUID Ċ Ċ data Ġclass ĠItem EventData ( ĊĠĠĠ Ġval Ġitem EventId : ĠByte , ĊĠĠĠ Ġval Ġtimestamp : ĠInstant , ĊĠĠĠ Ġval ĠeventType : ĠAudit Event , ĊĠĠĠ Ġval Ġx : ĠDouble , ĊĠĠĠ Ġval Ġy : ĠDouble , ĊĠĠĠ Ġval Ġz : ĠDouble , ĊĠĠĠ Ġval ĠitemId : ĠString ?, ĊĠĠĠ Ġval Ġthrow er Id : ĠUUID ?, ĊĠĠĠ Ġval Ġmetadata : ĠByteArray Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠItem EventData ĊĊĠĠĠĠĠĠĠ Ġif Ġ( item EventId Ġ!= Ġother . item EventId ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( timestamp Ġ!= Ġother . timestamp ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( eventType Ġ!= Ġother . eventType ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( x Ġ!= Ġother . x ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ!= Ġother . y ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( z Ġ!= Ġother . z ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( itemId Ġ!= Ġother . itemId ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( throw er Id Ġ!= Ġother . throw er Id ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! metadata . content Equals ( other . metadata )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġ 0 Ġ+ Ġitem EventId ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtimestamp . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ ĠeventType . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġx . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġy . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġz . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( itemId ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġthrow er Id . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġmetadata . content HashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }