package Ġm ary k . core . query . changes Ċ Ċ import Ġm ary k . core . exceptions . RequestException Ċ import Ġm ary k . core . properties . enum . TypeEnum Ċ import Ġm ary k . core . properties . references . Any Property Reference Ċ import Ġm ary k . core . properties . references . Is Property Reference For Values Ċ import Ġm ary k . core . properties . references . List Any Item Reference Ċ import Ġm ary k . core . properties . references . ListItem Reference Ċ import Ġm ary k . core . properties . references . Map Any Value Reference Ċ import Ġm ary k . core . properties . references . Map Value Reference Ċ import Ġm ary k . core . properties . references . Typed Value Reference Ċ import Ġm ary k . core . properties . types . Mutable Typed Value Ċ import Ġm ary k . core . properties . types . Typed Value Ċ import Ġm ary k . core . values . Mutable Value Items Ċ import Ġm ary k . core . values . Values Ċ Ċ // ĠThrow n Ġwhen Ġsub Ġobject Ġwas Ġtried Ġto Ġbe Ġchanged . Ċ object ĠSub Object Change Exception : ĠRequest Exception (" Cannot Ġset Ġsub Ġvalue Ġon Ġnon Ġexisting Ġvalue ") Ċ Ċ /** Ġchanges Ġdeeper Ġvalue Ġfor Ġ[ reference ] Ġbased Ġon Ġ[ original Value ] Ġand Ġ[ newValue ] Ġwith Ġ[ value Ch anger ] Ġ*/ Ċ internal Ġfun Ġdeep Value Ch anger ( original Value : ĠAny ?, ĠnewValue : ĠAny ?, Ġreference : ĠAny Property Reference , Ġvalue Ch anger : Ġ( Any ?, ĠAny ?) Ġ-> ĠAny ?) Ġ{ ĊĠĠĠ Ġwhen Ġ( newValue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠValues < *, Ġ*> Ġ-> Ġ( newValue . values Ġas ĠMutable Value Items ). copyFrom Original And Change ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( original Value Ġas ĠValues < *, Ġ*> ). values , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( reference Ġas ĠIs Property Reference For Values < *, Ġ*, Ġ*, Ġ*> ). index , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ch anger ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġis ĠMutable List < *> Ġ-> Ġwhen Ġ( reference ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠListItem Reference < *, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanged Value Ġ= Ġvalue Ch anger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( original Value Ġas ĠList < Any >). get OrNull ( reference . index . toInt ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewValue [ reference . index . toInt ()] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( changed Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit Ġ-> ĠnewValue . remove At ( reference . index . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{} Ġ// ĠDo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ( newValue Ġas ĠMutable List < Any >) [ reference . index . toInt ()] Ġ= Ġchanged Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList Any Item Reference < *, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ( original Value Ġas ĠList < Any >). last Index Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanged Value Ġ= Ġvalue Ch anger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Value . get OrNull ( index ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( newValue Ġas ĠMutable List < Any >) [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( changed Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit Ġ-> ĠnewValue . remove At ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{} Ġ// ĠDo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠnewValue [ index ] Ġ= Ġchanged Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRequest Exception (" Unsupported Ġreference Ġtype : Ġ$ reference ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠMutable Map < *, Ġ*> Ġ-> Ġwhen Ġ( reference ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMap Value Reference < *, Ġ*, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Map Value Ġ= Ġ( newValue Ġas ĠMutable Map < Any , ĠAny >) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanged Value Ġ= Ġvalue Ch anger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( original Value Ġas ĠMap < Any , ĠAny >). getOrElse ( reference . key ) Ġ{ Ġnull Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Map Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( changed Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit Ġ-> Ġnew Map Value . remove ( reference . key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{} Ġ// ĠDo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnew Map Value [ reference . key ] Ġ= Ġchanged Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMap Any Value Reference < *, Ġ*, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġitems ToRemove : ĠMutable List < Any >? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Map Value Ġ= Ġ( newValue Ġas ĠMutable Map < Any , ĠAny >) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġnew Map Value . entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanged Value Ġ= Ġvalue Ch anger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( original Value Ġas ĠMap < Any , ĠAny >). getOrElse ( key ) Ġ{ Ġnull Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( changed Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems ToRemove Ġ= Ġitems ToRemove ?. apply Ġ{ Ġadd ( key ) Ġ} Ġ?: Ġmutable ListOf ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{} Ġ// ĠDo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnew Map Value [ key ] Ġ= Ġchanged Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems ToRemove ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Map Value . remove ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRequest Exception (" Unsupported Ġreference Ġtype : Ġ$ reference ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠTyped Value < *, Ġ*> Ġ-> Ġwhen Ġ( reference ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTyped Value Reference < *, Ġ*, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanged Value Ġ= Ġvalue Ch anger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( original Value Ġas ĠTyped Value < *, Ġ*> ). value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewValue . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( changed Value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( newValue Ġas ĠMutable Typed Value < TypeEnum < Any >, ĠAny >). value Ġ= Ġchanged Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRequest Exception (" Unsupported Ġreference Ġtype : Ġ$ reference ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnull Ġ-> Ġthrow ĠSub Object Change Exception ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRequest Exception (" Unsupported Ġreference Ġtype : Ġ$ reference ") ĊĠĠĠ Ġ} Ċ } Ċ