package Ġcom . vp aliy . medi ap layer . data . cache Ċ Ċ import Ġjava . util . concurrent . Concurrent Map Ċ import Ġio . reactivex . Single Ċ Ċ class ĠCache Store < K , ĠV >( private Ġval Ġcache : ĠConcurrent Map < K , ĠV >) Ġ{ ĊĊĠ Ġfun Ġinvalidate ( key : ĠK ) Ġ= Ġcache . remove ( key ) ĊĊĠ Ġfun Ġput ( key : ĠK , Ġvalue : ĠV ) Ġ= Ġcache . put ( key , Ġvalue ) ĊĊĠ Ġfun Ġput All ( m : ĠMap < out ĠK , ĠV >) Ġ= Ġcache . put All ( m ) ĊĊĠ Ġfun Ġget Stream ( key : ĠK ): ĠSingle < V > Ġ{ ĊĠĠĠ Ġval Ġvalue Ġ= Ġcache [ key ] ĊĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠSingle . just ( value ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠSingle . error < V >( IllegalArgumentException (" Wrong Ġkey ! ")) ĊĠ Ġ} ĊĊĠ Ġfun ĠisIn Cache ( key : ĠK ?) Ġ= Ġkey Ġ!= Ġnull Ġ&& Ġcache [ key ] Ġ!= Ġnull ĊĊĠ Ġfun Ġsize () Ġ= Ġcache . size . to Long () Ċ }