Package org.jboss.hal.flow
Class FlowContext
- java.lang.Object
-
- org.jboss.hal.flow.FlowContext
-
public class FlowContext extends Object
General purpose context to be used as a common data structure when executing a list of asynchronous tasks in parallel, in sequence or when executing a task repeatedly while a condition evaluates totrue.The context provides a progress indicator to signal the progress of the task execution and a stack and a map for sharing data between asynchronous tasks.
Finally, the context provides methods to resolve the context as promise.
-
-
Constructor Summary
Constructors Constructor Description FlowContext()Creates a new instance with a noop progress implementation.FlowContext(Progress progress)Creates a new instance using the given progress indicator.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanemptyStack()booleanfailure()StringfailureReason()<T> Tget(String key)<T> Tget(String key, T defaultValue)Set<String>keys()<T> Tpeek()Returns the object at the top of the stack and keeps it on the stack.<T> Tpop()Removes the object at the top of the stack and returns that object.<T> Tpop(T defaultValue)Removes the object at the top of the stack and returns that object or returns the default value, if the stack is empty.<T> voidpush(T value)Pushes the value om top of the stack.<C extends FlowContext>
elemental2.promise.Promise<C>reject(Object error)Rejects this context with an error.<C extends FlowContext>
elemental2.promise.Promise<C>resolve()Resolves this context successfully as a promise.<C extends FlowContext,T>
elemental2.promise.Promise<C>resolve(String key, T value)Stores the value under the given key in the map and resolves this context successfully as a promise.<C extends FlowContext,T>
elemental2.promise.Promise<C>resolve(T value)Pushes the value on top of the stack and resolves this context successfully as a promise.<T> voidset(String key, T value)Stores the value under the given key in the map.FlowStatusstatus()booleansuccessful()booleantimeout()static booleantimeout(Object error)Method to check if the error in a catch callback is due to a timeout.StringtoString()
-
-
-
Constructor Detail
-
FlowContext
public FlowContext()
Creates a new instance with a noop progress implementation.
-
FlowContext
public FlowContext(Progress progress)
Creates a new instance using the given progress indicator.- Parameters:
progress- the progress indicator to signal progress when executing the tasks
-
-
Method Detail
-
timeout
public static boolean timeout(Object error)
Method to check if the error in a catch callback is due to a timeout.
-
resolve
public <C extends FlowContext> elemental2.promise.Promise<C> resolve()
Resolves this context successfully as a promise.
-
resolve
public <C extends FlowContext,T> elemental2.promise.Promise<C> resolve(T value)
Pushes the value on top of the stack and resolves this context successfully as a promise.
-
resolve
public <C extends FlowContext,T> elemental2.promise.Promise<C> resolve(String key, T value)
Stores the value under the given key in the map and resolves this context successfully as a promise.
-
reject
public <C extends FlowContext> elemental2.promise.Promise<C> reject(Object error)
Rejects this context with an error.
-
push
public <T> void push(T value)
Pushes the value om top of the stack.
-
pop
public <T> T pop()
Removes the object at the top of the stack and returns that object.- Returns:
- The object at the top of the stack.
- Throws:
EmptyStackException- if this stack is empty.
-
pop
public <T> T pop(T defaultValue)
Removes the object at the top of the stack and returns that object or returns the default value, if the stack is empty.- Returns:
- The object at the top of the stack or the default value if the stack is empty.
-
peek
public <T> T peek()
Returns the object at the top of the stack and keeps it on the stack.- Returns:
- The object at the top of the stack.
- Throws:
EmptyStackException- if this stack is empty.
-
emptyStack
public boolean emptyStack()
- Returns:
trueif the stack is empty,falseotherwise.
-
set
public <T> void set(String key, T value)
Stores the value under the given key in the map.
-
get
public <T> T get(String key)
- Returns:
- the object for the given key from the map or
nullif no such key was found.
-
get
public <T> T get(String key, T defaultValue)
- Returns:
- the object for the given key from the context map or
defaultValueif no such key was found.
-
status
public FlowStatus status()
- Returns:
- the execution status of this context
-
successful
public boolean successful()
- Returns:
- whether the execution was successful
-
timeout
public boolean timeout()
- Returns:
- whether the execution ran into a timeout
-
failure
public boolean failure()
- Returns:
- whether the execution failed
-
failureReason
public String failureReason()
- Returns:
- the failure or
nullif the execution was successful or ran into a timeout
-
-