package Ġcom . da im ler . mb c ark it . socket . observable Ċ Ċ import Ġcom . da im ler . mb c ark it . business . model . vehicle . T ire Ċ import Ġcom . da im ler . mb c ark it . business . model . vehicle . T ires Ċ import Ġcom . da im ler . mb c ark it . business . model . vehicle . Vehicle Status Ċ Ċ class ĠT ires Observable Message ( t ires : ĠT ires ) Ġ: ĠVehicle Observable Message < T ires >( t ires ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhas Changed ( old Vehicle Status : ĠVehicle Status ?, Ġupdated Vehicle Status : ĠVehicle Status ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Vehicle Status Ġ== Ġnull Ġ|| Ġt ires Changed ( old Vehicle Status . t ires , Ġupdated Vehicle Status . t ires ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġt ires Changed ( old T ires : ĠT ires , Ġupdate T ires : ĠT ires ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( t ire Changed ( old T ires . front Left , Ġupdate T ires . front Left )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( t ire Changed ( old T ires . front Right , Ġupdate T ires . front Right )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( t ire Changed ( old T ires . rear Left , Ġupdate T ires . rear Left )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( t ire Changed ( old T ires . rear Right , Ġupdate T ires . rear Right )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( old T ires . pressure Measurement Timestamp InSeconds Ġ!= Ġupdate T ires . pressure Measurement Timestamp InSeconds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( old T ires . sensor Available Ġ!= Ġupdate T ires . sensor Available ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( old T ires . warning Level Overall Ġ!= Ġupdate T ires . warning Level Overall ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġt ire Changed ( old T ire : ĠT ire ?, Ġupdate T ire : ĠT ire ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( old T ire ?. pressure K pa Ġ!= Ġupdate T ire ?. pressure K pa ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( old T ire ?. warning Level Ġ!= Ġupdate T ire ?. warning Level ) ĊĠĠĠ Ġ} Ċ } Ċ