package Ġru . bor on in . common . rx . utils Ċ Ċ import Ġio . reactivex . Comp letable Observer Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . Single Observer Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . internal . dis pos ables . Disposable Helper Ċ import Ġio . reactivex . internal . util . End Consumer Helper Ċ import Ġjava . util . concurrent . atomic . Atomic Reference Ċ Ċ abstract Ġclass ĠDis posable Any Observer < T > Ġ: ĊĠ ĠSingle Observer < T ? >, ĊĠ ĠObserver < T ? >, ĊĠ ĠComp letable Observer , ĊĠ ĠDis posable Ġ{ ĊĠ Ġprivate Ġval Ġs Ġ= ĠAtomic Reference < Disposable >() ĊĊĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{ ĊĠĠĠ Ġif Ġ( End Consumer Helper . set Once ( this . s , Ġd , Ġjava Class )) Ġ{ ĊĠĠĠĠĠ ĠonStart () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCalled Ġonce Ġthe Ġsingle Ġupstream ĠDis posable Ġis Ġset Ġvia Ġon Subscribe . ĊĠĠ Ġ*/ ĊĠ Ġfun ĠonStart () Ġ{ Ġ} ĊĊĠ Ġoverride Ġfun ĠonSuccess ( data : ĠT ) Ġ{ ĊĠĠĠ Ġon Next ( data ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġis Disposed () Ġ= Ġs . get () Ġ=== ĠDis posable Helper . DIS POSE D ĊĊĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠ ĠDis posable Helper . dispose ( s ) ĊĠ Ġ} Ċ } Ċ