T
- The value type associated with the created Promise.public class Deferred<T> extends Object
Instances of this class can be used to create a Promise
that can be
resolved in the future. The associated
Promise can be
successfully resolved with resolve(Object)
or resolved with a
failure with fail(Throwable)
. It can also be resolved with the
resolution of another promise using resolveWith(Promise)
.
The associated Promise can be provided to any one, but the Deferred object should be made available only to the party that will responsible for resolving the Promise.
Constructor and Description |
---|
Deferred()
Create a new Deferred with an associated Promise.
|
Modifier and Type | Method and Description |
---|---|
void |
fail(Throwable failure)
Fail the Promise associated with this Deferred.
|
Promise<T> |
getPromise()
Returns the Promise associated with this Deferred.
|
void |
resolve(T value)
Successfully resolve the Promise associated with this Deferred.
|
Promise<Void> |
resolveWith(Promise<? extends T> with)
Resolve the Promise associated with this Deferred with the specified
Promise.
|
public Promise<T> getPromise()
public void resolve(T value)
After the associated Promise is resolved with the specified value, all
registered callbacks
are called and
any chained
Promises are resolved.
Resolving the associated Promise happens-before any registered
callback is called. That is, in a registered callback,
Promise.isDone()
must return true
and
Promise.getValue()
and Promise.getFailure()
must not
block.
value
- The value of the resolved Promise.IllegalStateException
- If the associated Promise was already
resolved.public void fail(Throwable failure)
After the associated Promise is resolved with the specified failure, all
registered callbacks
are called and
any chained
Promises are resolved.
Resolving the associated Promise happens-before any registered
callback is called. That is, in a registered callback,
Promise.isDone()
must return true
and
Promise.getValue()
and Promise.getFailure()
must not
block.
failure
- The failure of the resolved Promise. Must not be
null
.IllegalStateException
- If the associated Promise was already
resolved.public Promise<Void> resolveWith(Promise<? extends T> with)
If the specified Promise is successfully resolved, the associated Promise is resolved with the value of the specified Promise. If the specified Promise is resolved with a failure, the associated Promise is resolved with the failure of the specified Promise.
After the associated Promise is resolved with the specified Promise, all
registered callbacks
are called and
any chained
Promises are resolved.
Resolving the associated Promise happens-before any registered
callback is called. That is, in a registered callback,
Promise.isDone()
must return true
and
Promise.getValue()
and Promise.getFailure()
must not
block.
with
- A Promise whose value or failure must be used to resolve the
associated Promise. Must not be null
.null
, if the
associated Promise was resolved by the specified Promise. The
returned Promise must be resolved with a failure of
IllegalStateException
, if the associated Promise was
already resolved when the specified Promise was resolved.Copyright © OSGi Alliance (2000, 2015). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0