package Ġio . lam art . gyro . rx java 2 . store Ċ Ċ import Ġio . lam art . gyro . mutable . Mutable Ċ import Ġio . lam art . gyro . rx java 2 . to Optional Mutable Ċ import Ġio . lam art . gyro . store . Store Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ import Ġio . reactivex . subjects . Replay Subject Ċ Ċ interface ĠObservable Store < T , ĠA > Ġ: ĠStore < A > Ġ{ ĊĠĠĠ Ġval Ġobservable : ĠObservable < T > Ċ } Ċ Ċ operator Ġfun Ġ< T , ĠA > ĠObservable Store < T , ĠA >. component 1 () Ġ= Ġobservable Ċ operator Ġfun Ġ< T , ĠA > ĠObservable Store < T , ĠA >. component 2 () Ġ= Ġactions Ċ Ċ internal Ġclass ĠObservable Store Instance < T , ĠA >( ĊĠĠĠ Ġoverride Ġval Ġobservable : ĠObservable < T >, ĊĠĠĠ Ġoverride Ġval Ġactions : ĠA Ċ ) Ġ: ĠObservable Store < T , ĠA > Ċ Ċ fun Ġ< T , ĠA > ĠBehavior Subject < T >. to Store ( ĊĠĠĠ Ġactions Factory : Ġ( mutable : ĠMutable < T >) Ġ-> ĠA , ĊĠĠĠ Ġif None : Ġ() Ġ-> ĠT Ġ= Ġ{ Ġthrow ĠNullPointerException () Ġ} Ċ ): ĠObservable Store < T , ĠA > Ġ= ĊĠĠĠ Ġto Optional Mutable () ĊĠĠĠĠĠĠĠ Ġ. to Mutable ( if None ) ĊĠĠĠĠĠĠĠ Ġ. let ( actions Factory ) ĊĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠObservable Store Instance ( this , Ġit ) Ġ} Ċ Ċ fun Ġ< T , ĠA > ĠRe play Subject < T >. to Store ( ĊĠĠĠ Ġactions Factory : Ġ( mutable : ĠMutable < T >) Ġ-> ĠA , ĊĠĠĠ Ġif None : Ġ() Ġ-> ĠT Ġ= Ġ{ Ġthrow ĠNullPointerException () Ġ} Ċ ): ĠObservable Store < T , ĠA > Ġ= ĊĠĠĠ Ġto Optional Mutable () ĊĠĠĠĠĠĠĠ Ġ. to Mutable ( if None ) ĊĠĠĠĠĠĠĠ Ġ. let ( actions Factory ) ĊĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠObservable Store Instance ( this , Ġit ) Ġ}