package Ġcom . no he lt cj . rx common . observable s Ċ Ċ import Ġcom . no he lt cj . rx common . Source Ċ import Ġcom . no he lt cj . rx common . dis pos ables . Disposable Ċ import Ġcom . no he lt cj . rx common . dis pos ables . Dis pos ables Ċ import Ġcom . no he lt cj . rx common . emitter s . Single Emitter Ċ import Ġcom . no he lt cj . rx common . ob servers . Observer Ċ Ċ class ĠSingle < E >() Ġ: ĠSource < E > Ġ{ ĊĠ Ġprivate Ġvar Ġdis posable : ĠDis posable ? Ġ= Ġnull ĊĊĠ Ġval Ġemitter Ġ= ĠSingle Emitter < E > Ġ{ ĊĠĠĠ Ġdis posable ?. dispose () ĊĠ Ġ} ĊĊĠ Ġconstructor ( create With Emitter Ġ: Ġ( Single Emitter < E >) Ġ-> ĠDis posable ) Ġ: Ġthis () Ġ{ ĊĠĠĠ Ġdis posable Ġ= Ġcreate With Emitter ( emitter ) ĊĠĠĠ Ġif Ġ( emitter . is Disposed ) Ġ{ ĊĠĠĠĠĠ Ġdis posable ?. dispose () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġconstructor ( just : ĠE ) Ġ: Ġthis () Ġ{ ĊĠĠĠ Ġemitter . next ( just ) ĊĠ Ġ} ĊĊĠ Ġconstructor ( error : ĠThrowable ) Ġ: Ġthis () Ġ{ ĊĠĠĠ Ġemitter . terminate ( error ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġsubscribe ( observer : ĠObserver < E >) Ġ: ĠDis posable Ġ{ ĊĠĠĠ Ġemitter . add Observer ( observer ) ĊĊĠĠĠ Ġreturn ĠDis pos ables . create Ġ{ ĊĠĠĠĠĠ Ġemitter . remove Observer ( observer ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }