Class DeferredObject<D,F,P>

java.lang.Object
org.jdeferred2.impl.AbstractPromise<D,F,P>
org.jdeferred2.impl.DeferredObject<D,F,P>
All Implemented Interfaces:
Deferred<D,F,P>, Promise<D,F,P>
Direct Known Subclasses:
AbstractMasterDeferredObject, AllValuesDeferredObject, FilteredPromise, PipedPromise, SingleDeferredObject

public class DeferredObject<D,F,P> extends AbstractPromise<D,F,P> implements Deferred<D,F,P>
An implementation of Deferred interface.


final Deferred deferredObject = new DeferredObject

Promise promise = deferredObject.promise();
promise
  .done(new DoneCallback() { ... })
  .fail(new FailCallback() { ... })
  .progress(new ProgressCallback() { ... });

Runnable runnable = new Runnable() {
  public void run() {
    int sum = 0;
    for (int i = 0; i invalid input: '<' 100; i++) {
      // something that takes time
      sum += i;
      deferredObject.notify(i);
    }
    deferredObject.resolve(sum);
  }
}
// submit the task to run


See Also:
  • Constructor Details

    • DeferredObject

      public DeferredObject()
  • Method Details

    • resolve

      public Deferred<D,F,P> resolve(D resolve)
      Description copied from interface: Deferred
      This should be called when a task has completed successfully.

      
      Deferred deferredObject = new DeferredObject();
      Promise promise = deferredObject.promise();
      promise.done(new DoneCallback() {
        public void onDone(Object result) {
              // Done!
        }
      });
      
      // another thread using the same deferredObject
      deferredObject.resolve("OK");
      
      
      
      Specified by:
      resolve in interface Deferred<D,F,P>
      Parameters:
      resolve - the resolved value for this Deferred
      Returns:
      the reference to this Deferred instance.
    • notify

      public Deferred<D,F,P> notify(P progress)
      Description copied from interface: Deferred
      This should be called when a task is still executing and progress had been made, E.g., during a file download, notify the download progress.

      
      Deferred deferredObject = new DeferredObject();
      Promise promise = deferredObject.promise();
      promise.progress(new ProgressCallback() {
        public void onProgress(Object progress) {
              // Failed :(
        }
      });
      
      // another thread using the same deferredObject
      deferredObject.reject("100%");
      
      
      
      Specified by:
      notify in interface Deferred<D,F,P>
      Parameters:
      progress - the intermediate result for this Deferred
      Returns:
      the reference to this Deferred instance.
    • reject

      public Deferred<D,F,P> reject(F reject)
      Description copied from interface: Deferred
      This should be called when a task has completed unsuccessfully, i.e., a failure may have occurred.

      
      Deferred deferredObject = new DeferredObject();
      Promise promise = deferredObject.promise();
      promise.fail(new FailCallback() {
        public void onFail(Object result) {
              // Failed :(
        }
      });
      
      // another thread using the same deferredObject
      deferredObject.reject("BAD");
      
      
      
      Specified by:
      reject in interface Deferred<D,F,P>
      Parameters:
      reject - the rejected value for this Deferred
      Returns:
      the reference to this Deferred instance.
    • promise

      public Promise<D,F,P> promise()
      Description copied from interface: Deferred
      Return an Promise instance (i.e., an observer). You can register callbacks in this observer.
      Specified by:
      promise in interface Deferred<D,F,P>
      Returns:
      the reference to this Deferred instance as a Promise,