Class DisposableMaybeObserver<T>

  • Type Parameters:
    T - the received value type
    All Implemented Interfaces:
    MaybeObserver<T>, Disposable

    public abstract class DisposableMaybeObserver<T>
    extends java.lang.Object
    implements MaybeObserver<T>, Disposable
    An abstract MaybeObserver that allows asynchronous cancellation by implementing Disposable.

    All pre-implemented final methods are thread-safe.

    Note that MaybeObserver.onSuccess(Object), MaybeObserver.onError(Throwable) and MaybeObserver.onComplete() are exclusive to each other, unlike a regular Observer, and onComplete() is never called after an onSuccess().

    Like all other consumers, DisposableMaybeObserver can be subscribed only once. Any subsequent attempt to subscribe it to a new source will yield an IllegalStateException with message "It is not allowed to subscribe with a(n) <class name> multiple times.".

    Implementation of onStart(), MaybeObserver.onSuccess(Object), MaybeObserver.onError(Throwable) and MaybeObserver.onComplete() are not allowed to throw any unchecked exceptions.

    Example

    
     Disposable d =
         Maybe.just(1).delay(1, TimeUnit.SECONDS)
         .subscribeWith(new DisposableMaybeObserver<Integer>() {
             @Override public void onStart() {
                 System.out.println("Start!");
             }
             @Override public void onSuccess(Integer t) {
                 System.out.println(t);
             }
             @Override public void onError(Throwable t) {
                 t.printStackTrace();
             }
             @Override public void onComplete() {
                 System.out.println("Done!");
             }
         });
     // ...
     d.dispose();
     
    • Field Detail

      • upstream

        final java.util.concurrent.atomic.AtomicReference<Disposable> upstream
    • Constructor Detail

      • DisposableMaybeObserver

        public DisposableMaybeObserver()
    • Method Detail

      • isDisposed

        public final boolean isDisposed()
        Description copied from interface: Disposable
        Returns true if this resource has been disposed.
        Specified by:
        isDisposed in interface Disposable
        Returns:
        true if this resource has been disposed
      • dispose

        public final void dispose()
        Description copied from interface: Disposable
        Dispose the resource, the operation should be idempotent.
        Specified by:
        dispose in interface Disposable