package Ġcom . no vas a . reactiv ere pository example Ċ Ċ import Ġcom . no vas a . reactiv ere pository . Caching Repository Ċ import Ġcom . no vas a . reactiv ere pository . Repository Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġjava . lang . RuntimeException Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠItem Repository Ġ: ĠC aching Repository < Item >(" Data ") Ġ{ ĊĊĠĠĠ Ġprivate Ġvar ĠitemId : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinvalid ation Delay Ġ= Ġ 1 0 Ġ* Ġ 1 0 0 0 L ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrefresh (): ĠMaybe < Result < Item >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMaybe . timer ( 2 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠItem ( ++ itemId ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġif Ġ( it . id Ġ% Ġ 5 Ġ== Ġ 0 ) ĠMaybe . error ( RuntimeException (" Failed Ġrepository Ġrefresh ")) Ġelse ĠMaybe . just ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠResult ( it , ĠRepository . Source . REMOTE ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} Ċ } Ċ