Interface Disposable

All Known Subinterfaces:
QueueDisposable<T>
All Known Implementing Classes:
CompositeDisposable, DisposableCompletableObserver, DisposableMaybeObserver, DisposableObserver, DisposableSingleObserver, DisposableSubscriber, ResourceCompletableObserver, ResourceMaybeObserver, ResourceObserver, ResourceSingleObserver, ResourceSubscriber, SafeObserver, Scheduler.Worker, SerialDisposable, SerializedObserver, TestObserver

public interface Disposable
Represents a disposable resource.
  • Method Details

    • dispose

      void dispose()
      Dispose the resource, the operation should be idempotent.
    • isDisposed

      boolean isDisposed()
      Returns true if this resource has been disposed.
      Returns:
      true if this resource has been disposed
    • fromRunnable

      Construct a Disposable by wrapping a Runnable that is executed exactly once when the Disposable is disposed.
      Parameters:
      run - the Runnable to wrap
      Returns:
      the new Disposable instance
      Throws:
      NullPointerException - if run is null
      Since:
      3.0.0
    • fromAction

      @NonNull static @NonNull Disposable fromAction(@NonNull @NonNull Action action)
      Construct a Disposable by wrapping a Action that is executed exactly once when the Disposable is disposed.
      Parameters:
      action - the Action to wrap
      Returns:
      the new Disposable instance
      Throws:
      NullPointerException - if action is null
      Since:
      3.0.0
    • fromFuture

      @NonNull static @NonNull Disposable fromFuture(@NonNull @NonNull Future<?> future)
      Construct a Disposable by wrapping a Future that is cancelled exactly once when the Disposable is disposed.

      The Future is cancelled with mayInterruptIfRunning == true.

      Parameters:
      future - the Future to wrap
      Returns:
      the new Disposable instance
      Throws:
      NullPointerException - if future is null
      Since:
      3.0.0
      See Also:
    • fromFuture

      @NonNull static @NonNull Disposable fromFuture(@NonNull @NonNull Future<?> future, boolean allowInterrupt)
      Construct a Disposable by wrapping a Future that is cancelled exactly once when the Disposable is disposed.
      Parameters:
      future - the Future to wrap
      allowInterrupt - if true, the future cancel happens via Future.cancel(true)
      Returns:
      the new Disposable instance
      Throws:
      NullPointerException - if future is null
      Since:
      3.0.0
    • fromSubscription

      @NonNull static @NonNull Disposable fromSubscription(@NonNull @NonNull Flow.Subscription subscription)
      Construct a Disposable by wrapping a Flow.Subscription that is cancelled exactly once when the Disposable is disposed.
      Parameters:
      subscription - the Runnable to wrap
      Returns:
      the new Disposable instance
      Throws:
      NullPointerException - if subscription is null
      Since:
      3.0.0
    • fromAutoCloseable

      @NonNull static @NonNull Disposable fromAutoCloseable(@NonNull @NonNull AutoCloseable autoCloseable)
      Construct a Disposable by wrapping an AutoCloseable that is closed exactly once when the Disposable is disposed.
      Parameters:
      autoCloseable - the AutoCloseable to wrap
      Returns:
      the new Disposable instance
      Throws:
      NullPointerException - if autoCloseable is null
      Since:
      3.0.0
    • toAutoCloseable

      @NonNull static @NonNull AutoCloseable toAutoCloseable(@NonNull @NonNull Disposable disposable)
      Construct an AutoCloseable by wrapping a Disposable that is disposed when the returned AutoCloseable is closed.
      Parameters:
      disposable - the Disposable instance
      Returns:
      the new AutoCloseable instance
      Throws:
      NullPointerException - if disposable is null
      Since:
      3.0.0
    • empty

      @NonNull static @NonNull Disposable empty()
      Returns a new, non-disposed Disposable instance.
      Returns:
      a new, non-disposed Disposable instance
      Since:
      3.0.0
    • disposed

      @NonNull static @NonNull Disposable disposed()
      Returns a shared, disposed Disposable instance.
      Returns:
      a shared, disposed Disposable instance
      Since:
      3.0.0