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,