package Ġca . dr dg v hb h . vehicle app . data Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġca . dr dg v hb h . vehicle app . contracts . Vehicle Ġas ĠVehicle Contract Ċ import Ġio . reactivex . Back pressure Strategy Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġorg . web 3 j . protocol . Web 3 j Ċ import Ġorg . web 3 j . protocol . http . Http Service Ċ import Ġorg . web 3 j . tx . Readonly Transaction Manager Ċ import Ġorg . web 3 j . tx . gas . Default Gas Provider Ċ import Ġjava . math . BigInteger Ċ Ċ data Ġclass ĠVehicle ( ĊĠĠĠ Ġval Ġplate Number : ĠString , ĊĠĠĠ Ġval Ġmodel : ĠString Ċ ) Ċ Ċ class ĠVehicle Repository ( ĊĠĠĠ Ġhost : ĠString , ĊĠĠĠ Ġport : ĠString , ĊĠĠĠ Ġnetwork ID : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontract Address : ĠString Ġ= ĠVehicle Contract . get Previous ly Deploy ed Address ( network ID ) ĊĊĠĠĠ Ġprivate Ġval Ġweb 3 : ĠWeb 3 j Ġ= ĠWeb 3 j . build ( Http Service (" http :// $ host :$ port ")) ĊĊĠĠĠ Ġprivate Ġval Ġhttp Service Ġ= ĠOk HttpClient . Builder (). build () ĊĊĊĠĠĠ Ġfun ĠgetAll Registered Veh icles ( owner Address : ĠString ): ĠSingle < List < Pair < BigInteger , ĠVehicle >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Manager Ġ= ĠReadonly Transaction Manager ( web 3 , Ġowner Address ) ĊĠĠĠĠĠĠĠ Ġval Ġvehicle Contract Ġ= Ġca . dr dg v hb h . vehicle app . contracts . Vehicle . load ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontract Address , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Gas Provider () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvehicle Contract . registered Veh icles . flow able () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġas ĠMutable List < BigInteger > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Iterable Ġ{ Ġlist Ġ-> Ġlist Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġtoken ID Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvehicle Contract . token URI ( token ID ). flow able (). flatMap Ġ{ ĠmetaData URL Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġhttp Service . new Call ( Request . Builder (). url ( metaData URL ). build ()). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . just ( response ). to Flow able ( Back pressure Strategy . ERROR ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvehicle Ġ= ĠGson (). fromJson < Vehicle >( response . body ()?. char Stream (), ĠVehicle :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map ĠPair ( token ID , Ġvehicle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} Ċ }