public abstract class DataflowExpression<T> extends WithSerialId implements groovy.lang.GroovyObject, DataflowReadChannel<T>
| Modifier and Type | Class and Description |
|---|---|
static class |
DataflowExpression.BindDataflow<T>
Represents a remote message binding a value to a remoted DataflowExpression
|
(package private) class |
DataflowExpression.DataflowExpressionsCollector
Listener for availability of data flow expressions we depend on.
|
private static class |
DataflowExpression.TransformMany<V> |
private static class |
DataflowExpression.TransformOne<V> |
private static class |
DataflowExpression.WaitingThread
A logical representation of a synchronous or asynchronous request to read the value once it is bound.
|
| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
A_DATAFLOW_VARIABLE_CAN_ONLY_BE_ASSIGNED_ONCE_ONLY_RE_ASSIGNMENTS_TO_AN_EQUAL_VALUE_ARE_ALLOWED |
private static java.lang.String |
ATTACHMENT |
private static java.lang.String |
CANNOT_FIRE_BIND_ERRORS_THE_THREAD_HAS_BEEN_INTERRUPTED |
private static DataflowExpression.WaitingThread |
dummyWaitingThread
A request chain terminator
|
protected java.lang.Throwable |
error |
private DataflowChannelEventOrchestrator<T> |
eventManager |
private groovy.lang.MetaClass |
metaClass
The current metaclass
|
private static java.lang.String |
RESULT |
protected static int |
S_INITIALIZED |
protected static int |
S_INITIALIZING |
protected static int |
S_NOT_INITIALIZED
Possible states
|
private static long |
serialVersionUID |
protected int |
state
Holds the current state of the variable
|
protected static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<DataflowExpression> |
stateUpdater
Updater for the state field
|
protected T |
value
Holds the actual value.
|
private DataflowExpression.WaitingThread |
waiting
Points to the head of the chain of requests waiting for a value to be bound
|
protected static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<DataflowExpression,DataflowExpression.WaitingThread> |
waitingUpdater
Updater for the waiting field
|
serialHandle| Modifier | Constructor and Description |
|---|---|
protected |
DataflowExpression()
Creates a new unbound Dataflow Expression
|
| Modifier and Type | Method and Description |
|---|---|
void |
binaryChoice(DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
Directs the output to one of the two output channels depending on the boolean result of the provided closure.
|
void |
binaryChoice(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
Directs the output to one of the two output channels depending on the boolean result of the provided closure.
|
void |
binaryChoice(PGroup group,
DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
Directs the output to one of the two output channels depending on the boolean result of the provided closure.
|
void |
binaryChoice(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
Directs the output to one of the two output channels depending on the boolean result of the provided closure.
|
void |
binaryChoice(Pool pool,
DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
Directs the output to one of the two output channels depending on the boolean result of the provided closure.
|
void |
binaryChoice(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
Directs the output to one of the two output channels depending on the boolean result of the provided closure.
|
void |
bind(T value)
Assigns a value to the variable.
|
void |
bindError(java.lang.Throwable e) |
void |
bindSafely(T value)
Assigns a value to the variable.
|
void |
bindUnique(T value)
Assigns a value to the variable.
|
<V> DataflowReadChannel<V> |
chainWith(groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
<V> DataflowReadChannel<V> |
chainWith(java.util.Map<java.lang.String,java.lang.Object> params,
groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
<V> DataflowReadChannel<V> |
chainWith(PGroup group,
groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
<V> DataflowReadChannel<V> |
chainWith(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
<V> DataflowReadChannel<V> |
chainWith(Pool pool,
groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
<V> DataflowReadChannel<V> |
chainWith(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
void |
choice(java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
Directs the output to one of the output channels depending on the int result of the provided closure.
|
void |
choice(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
Directs the output to one of the output channels depending on the int result of the provided closure.
|
void |
choice(PGroup group,
java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
Directs the output to one of the output channels depending on the int result of the provided closure.
|
void |
choice(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
Directs the output to one of the output channels depending on the int result of the provided closure.
|
void |
choice(Pool pool,
java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
Directs the output to one of the output channels depending on the int result of the provided closure.
|
void |
choice(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
Directs the output to one of the output channels depending on the int result of the provided closure.
|
private DataflowChannelEventOrchestrator<T> |
createEventManager() |
private void |
doBind(T value)
Performs the actual bind operation, unblocks all blocked threads and informs all asynchronously waiting actors.
|
protected void |
doBindImpl(T value) |
void |
doBindRemote(java.util.UUID hostId,
T message)
Binds the value after receiving a bing message over the wire
|
private Promise<java.util.List> |
doThenForkAndJoin(PGroup group,
Pool pool,
groovy.lang.Closure<? extends java.lang.Object>[] closures) |
protected T |
evaluate()
Evaluates the expression after the ones we depend on are ready
|
DataflowReadChannel<T> |
filter(groovy.lang.Closure<java.lang.Boolean> closure)
Creates and attaches a new operator that will filter data using the provided closure
|
DataflowReadChannel<T> |
filter(java.util.Map<java.lang.String,java.lang.Object> params,
groovy.lang.Closure<java.lang.Boolean> closure)
Creates and attaches a new operator that will filter data using the provided closure
|
DataflowReadChannel<T> |
filter(PGroup group,
groovy.lang.Closure<java.lang.Boolean> closure)
Creates and attaches a new operator that will filter data using the provided closure
|
DataflowReadChannel<T> |
filter(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
groovy.lang.Closure<java.lang.Boolean> closure)
Creates and attaches a new operator that will filter data using the provided closure
|
DataflowReadChannel<T> |
filter(Pool pool,
groovy.lang.Closure<java.lang.Boolean> closure)
Creates and attaches a new operator that will filter data using the provided closure
|
DataflowReadChannel<T> |
filter(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
groovy.lang.Closure<java.lang.Boolean> closure)
Creates and attaches a new operator that will filter data using the provided closure
|
private void |
fireBindError(T value,
boolean unique) |
private void |
fireBindError(java.lang.Throwable e) |
private void |
fireOnMessage(T value) |
BindErrorListenerManager<T> |
getBindErrorManager() |
DataflowChannelEventListenerManager<T> |
getEventManager()
Retrieves the event manager object of this channel
|
groovy.lang.MetaClass |
getMetaClass() |
java.lang.Object |
getProperty(java.lang.String propertyName)
Returns either standard property of the expression or
creates an expression, which will request given property when the receiver becomes available
|
T |
getVal()
Reads the value of the variable.
|
T |
getVal(long timeout,
java.util.concurrent.TimeUnit units)
Reads the value of the variable.
|
void |
getValAsync(MessageStream callback)
Asynchronously retrieves the value of the variable.
|
void |
getValAsync(java.lang.Object attachment,
MessageStream callback)
Used by Dataflow operators.
|
private static void |
handleInterruption(java.util.concurrent.atomic.AtomicBoolean newWaiting) |
void |
into(DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
void |
into(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
void |
into(PGroup group,
DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
void |
into(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
void |
into(Pool pool,
DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
void |
into(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
java.lang.Object |
invokeMethod(java.lang.String name,
java.lang.Object args)
Invokes the method on itself or creates an expression, which will invoke the method n the bound value,
once it is available.
|
boolean |
isBound()
Check if value has been set already for this expression
|
void |
join()
Blocks, if the value has not been assigned yet to the DataflowVariable
|
void |
join(long timeout,
java.util.concurrent.TimeUnit units)
Blocks, if the value has not been assigned yet to the DataflowVariable
|
int |
length()
Reports the current number of elements in the channel
|
<V> DataflowReadChannel<V> |
merge(DataflowReadChannel<java.lang.Object> other,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(java.util.List<DataflowReadChannel<java.lang.Object>> others,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowReadChannel<java.lang.Object> other,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowReadChannel<java.lang.Object>> others,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(PGroup group,
DataflowReadChannel<java.lang.Object> other,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(PGroup group,
java.util.List<DataflowReadChannel<java.lang.Object>> others,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowReadChannel<java.lang.Object> other,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowReadChannel<java.lang.Object>> others,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(Pool pool,
DataflowReadChannel<java.lang.Object> other,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(Pool pool,
java.util.List<DataflowReadChannel<java.lang.Object>> others,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowReadChannel<java.lang.Object> other,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
<V> DataflowReadChannel<V> |
merge(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowReadChannel<java.lang.Object>> others,
groovy.lang.Closure<V> closure)
Merges channels together as inputs for a single dataflow operator.
|
private void |
notifyRemote(java.util.UUID hostId)
Sends notifications to all subscribers
|
<V> DataflowReadChannel<V> |
or(groovy.lang.Closure<V> closure)
Creates and attaches a new operator processing values from the channel
|
void |
or(DataflowWriteChannel<T> target)
Makes the output of the current channel to be an input for the specified channel
|
DataflowExpression<T> |
poll()
Retrieves the bound value.
|
<V> Promise<V> |
rightShift(groovy.lang.Closure<V> closure)
Schedule closure to be executed by pooled actor after data became available.
|
protected void |
scheduleCallback(java.lang.Object attachment,
MessageStream callback)
Sends the result back to the actor, which is waiting asynchronously for the value to be bound.
|
void |
separate(java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
Allows the closure to output different values to different output channels.
|
void |
separate(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
Allows the closure to output different values to different output channels.
|
void |
separate(PGroup group,
java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
Allows the closure to output different values to different output channels.
|
void |
separate(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
Allows the closure to output different values to different output channels.
|
void |
separate(Pool pool,
java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
Allows the closure to output different values to different output channels.
|
void |
separate(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
Allows the closure to output different values to different output channels.
|
void |
setMetaClass(groovy.lang.MetaClass metaClass) |
void |
setProperty(java.lang.String propertyName,
java.lang.Object newValue) |
void |
split(DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
Splits the output of the current channel to be an input for the specified channels
|
void |
split(java.util.List<DataflowWriteChannel<T>> targets)
Makes the output of the current channel to be an input for the specified channels
|
void |
split(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
Splits the output of the current channel to be an input for the specified channels
|
void |
split(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> targets)
Makes the output of the current channel to be an input for the specified channels
|
void |
split(PGroup group,
DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
Splits the output of the current channel to be an input for the specified channels
|
void |
split(PGroup group,
java.util.List<DataflowWriteChannel<T>> targets)
Makes the output of the current channel to be an input for the specified channels
|
void |
split(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
Splits the output of the current channel to be an input for the specified channels
|
void |
split(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> targets)
Makes the output of the current channel to be an input for the specified channels
|
void |
split(Pool pool,
DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
Splits the output of the current channel to be an input for the specified channels
|
void |
split(Pool pool,
java.util.List<DataflowWriteChannel<T>> targets)
Makes the output of the current channel to be an input for the specified channels
|
void |
split(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
Splits the output of the current channel to be an input for the specified channels
|
void |
split(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> targets)
Makes the output of the current channel to be an input for the specified channels
|
protected void |
subscribe()
A utility method to call at the very end of constructors of derived expressions.
|
protected void |
subscribe(DataflowExpression.DataflowExpressionsCollector listener) |
DataflowReadChannel<T> |
tap(DataflowWriteChannel<T> target)
Taps into the pipeline.
|
DataflowReadChannel<T> |
tap(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
Taps into the pipeline.
|
DataflowReadChannel<T> |
tap(PGroup group,
DataflowWriteChannel<T> target)
Taps into the pipeline.
|
DataflowReadChannel<T> |
tap(PGroup group,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
Taps into the pipeline.
|
DataflowReadChannel<T> |
tap(Pool pool,
DataflowWriteChannel<T> target)
Taps into the pipeline.
|
DataflowReadChannel<T> |
tap(Pool pool,
java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
Taps into the pipeline.
|
<V> Promise<V> |
then(groovy.lang.Closure<V> closure)
Schedule closure to be executed after data became available.
|
<V> Promise<V> |
then(PGroup group,
groovy.lang.Closure<V> closure)
Schedule closure to be executed after data becomes available.
|
<V> Promise<V> |
then(Pool pool,
groovy.lang.Closure<V> closure)
Schedule closure to be executed after data becomes available.
|
Promise<java.util.List> |
thenForkAndJoin(groovy.lang.Closure<? extends java.lang.Object>... closures)
Schedule a set of closures to be executed after data became available on the current promise.
|
Promise<java.util.List> |
thenForkAndJoin(PGroup group,
groovy.lang.Closure<? extends java.lang.Object>... closures)
Schedule a set of closures to be executed after data became available on the current promise.
|
Promise<java.util.List> |
thenForkAndJoin(Pool pool,
groovy.lang.Closure<? extends java.lang.Object>... closures)
Schedule a set of closures to be executed after data became available on the current promise.
|
java.lang.String |
toString() |
static <V> DataflowExpression<V> |
transform(java.lang.Object another,
groovy.lang.Closure closure)
Transforms values bound eventually to dataflow variables using the supplied closure.
|
<V> void |
whenBound(groovy.lang.Closure<V> closure)
Schedule closure to be executed by pooled actor after data becomes available.
|
void |
whenBound(MessageStream stream)
Send the bound data to provided stream when it becomes available
|
<V> void |
whenBound(PGroup group,
groovy.lang.Closure<V> closure)
Schedule closure to be executed by pooled actor after data becomes available.
|
<V> void |
whenBound(Pool pool,
groovy.lang.Closure<V> closure)
Schedule closure to be executed by pooled actor after data becomes available.
|
<V> void |
wheneverBound(groovy.lang.Closure<V> closure)
Send all pieces of data bound in the future to the provided stream when it becomes available.
|
void |
wheneverBound(MessageStream stream)
Send all pieces of data bound in the future to the provided stream when it becomes available.
|
createRemoteHandle, getOrCreateSerialHandle, getRemoteClass, writeReplaceprivate static final java.lang.String ATTACHMENT
private static final java.lang.String RESULT
protected static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<DataflowExpression> stateUpdater
protected static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<DataflowExpression,DataflowExpression.WaitingThread> waitingUpdater
private static final long serialVersionUID
private static final java.lang.String CANNOT_FIRE_BIND_ERRORS_THE_THREAD_HAS_BEEN_INTERRUPTED
private static final java.lang.String A_DATAFLOW_VARIABLE_CAN_ONLY_BE_ASSIGNED_ONCE_ONLY_RE_ASSIGNMENTS_TO_AN_EQUAL_VALUE_ARE_ALLOWED
private groovy.lang.MetaClass metaClass
protected volatile T value
protected volatile java.lang.Throwable error
protected volatile int state
private volatile DataflowExpression.WaitingThread waiting
protected static final int S_NOT_INITIALIZED
protected static final int S_INITIALIZING
protected static final int S_INITIALIZED
private static final DataflowExpression.WaitingThread dummyWaitingThread
private volatile DataflowChannelEventOrchestrator<T> eventManager
protected DataflowExpression()
public final boolean isBound()
isBound in interface DataflowReadChannel<T>public final int length()
DataflowReadChannellength in interface DataflowReadChannel<T>public void getValAsync(MessageStream callback)
getValAsync in interface DataflowReadChannel<T>callback - An actor to send the bound value to.public void getValAsync(java.lang.Object attachment,
MessageStream callback)
getValAsync in interface DataflowReadChannel<T>attachment - arbitrary non-null attachment if reader needs better identification of resultcallback - An actor to send the bound value plus the supplied index to.public final void join()
throws java.lang.InterruptedException
java.lang.InterruptedException - If the current thread gets interrupted while waiting for the variable to be boundpublic final void join(long timeout,
java.util.concurrent.TimeUnit units)
throws java.lang.InterruptedException
timeout - The timeout valueunits - Units for the timeoutjava.lang.InterruptedException - If the current thread gets interrupted while waiting for the variable to be boundpublic T getVal() throws java.lang.InterruptedException
getVal in interface DataflowReadChannel<T>java.lang.InterruptedException - If the current thread gets interrupted while waiting for the variable to be boundpublic T getVal(long timeout, java.util.concurrent.TimeUnit units) throws java.lang.InterruptedException
getVal in interface DataflowReadChannel<T>timeout - The timeout valueunits - Units for the timeoutjava.lang.InterruptedException - If the current thread gets interrupted while waiting for the variable to be boundpublic final DataflowExpression<T> poll()
poll in interface SelectableChannel<T>private static void handleInterruption(java.util.concurrent.atomic.AtomicBoolean newWaiting)
throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic final void bindSafely(T value)
value - The value to assignpublic final void bindError(java.lang.Throwable e)
public final void bind(T value)
value - The value to assignpublic final void bindUnique(T value)
value - The value to assignprivate void doBind(T value)
value - The value to assignprotected void doBindImpl(T value)
public final void doBindRemote(java.util.UUID hostId,
T message)
hostId - Id of the bind originator hostmessage - The value to bindprivate void notifyRemote(java.util.UUID hostId)
hostId - The local host idprotected void scheduleCallback(java.lang.Object attachment,
MessageStream callback)
attachment - An arbitrary object identifying the requestcallback - The actor to send the message topublic final <V> Promise<V> rightShift(groovy.lang.Closure<V> closure)
rightShift in interface DataflowReadChannel<T>closure - closure to execute when data becomes available. The closure should take at most one argument.public final <V> void whenBound(groovy.lang.Closure<V> closure)
whenBound in interface DataflowReadChannel<T>closure - closure to execute when data becomes available. The closure should take at most one argument.public <V> void whenBound(Pool pool, groovy.lang.Closure<V> closure)
whenBound in interface DataflowReadChannel<T>pool - The thread pool to use for task scheduling for asynchronous message deliveryclosure - closure to execute when data becomes available. The closure should take at most one argument.public final <V> void whenBound(PGroup group, groovy.lang.Closure<V> closure)
whenBound in interface DataflowReadChannel<T>group - The PGroup to use for task scheduling for asynchronous message deliveryclosure - closure to execute when data becomes available. The closure should take at most one argument.public final void whenBound(MessageStream stream)
whenBound in interface DataflowReadChannel<T>stream - stream where to send resultpublic final <V> Promise<V> then(groovy.lang.Closure<V> closure)
then in interface DataflowReadChannel<T>closure - closure to execute when data becomes available. The closure should take at most one argument.public final <V> Promise<V> then(Pool pool, groovy.lang.Closure<V> closure)
then in interface DataflowReadChannel<T>pool - The thread pool to use for task scheduling for asynchronous message deliveryclosure - closure to execute when data becomes available. The closure should take at most one argument.public final <V> Promise<V> then(PGroup group, groovy.lang.Closure<V> closure)
then in interface DataflowReadChannel<T>group - The PGroup to use for task scheduling for asynchronous message deliveryclosure - closure to execute when data becomes available. The closure should take at most one argument.public final Promise<java.util.List> thenForkAndJoin(groovy.lang.Closure<? extends java.lang.Object>... closures)
closures - closure to execute when data becomes available. The closure should take at most one argument.public final Promise<java.util.List> thenForkAndJoin(Pool pool, groovy.lang.Closure<? extends java.lang.Object>... closures)
pool - The thread pool to use for task scheduling for asynchronous message deliveryclosures - closure to execute when data becomes available. The closure should take at most one argument.public final Promise<java.util.List> thenForkAndJoin(PGroup group, groovy.lang.Closure<? extends java.lang.Object>... closures)
group - The PGroup to use for task scheduling for asynchronous message deliveryclosures - closure to execute when data becomes available. The closure should take at most one argument.private Promise<java.util.List> doThenForkAndJoin(PGroup group, Pool pool, groovy.lang.Closure<? extends java.lang.Object>[] closures)
public final <V> void wheneverBound(groovy.lang.Closure<V> closure)
wheneverBound in interface SelectableChannel<T>closure - closure to execute when data becomes available. The closure should take at most one argument.public final void wheneverBound(MessageStream stream)
wheneverBound in interface SelectableChannel<T>stream - stream where to send resultpublic final <V> DataflowReadChannel<V> chainWith(groovy.lang.Closure<V> closure)
DataflowReadChannelchainWith in interface DataflowReadChannel<T>V - The type of values returned from the supplied closureclosure - The function to invoke on all incoming values as part of the new operator's bodypublic final <V> DataflowReadChannel<V> chainWith(Pool pool, groovy.lang.Closure<V> closure)
DataflowReadChannelchainWith in interface DataflowReadChannel<T>V - The type of values returned from the supplied closurepool - The thread pool to useclosure - The function to invoke on all incoming values as part of the new operator's bodypublic <V> DataflowReadChannel<V> chainWith(PGroup group, groovy.lang.Closure<V> closure)
DataflowReadChannelchainWith in interface DataflowReadChannel<T>V - The type of values returned from the supplied closuregroup - The PGroup to useclosure - The function to invoke on all incoming values as part of the new operator's bodypublic final <V> DataflowReadChannel<V> chainWith(java.util.Map<java.lang.String,java.lang.Object> params, groovy.lang.Closure<V> closure)
DataflowReadChannelchainWith in interface DataflowReadChannel<T>V - The type of values returned from the supplied closureparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)closure - The function to invoke on all incoming values as part of the new operator's bodypublic final <V> DataflowReadChannel<V> chainWith(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, groovy.lang.Closure<V> closure)
DataflowReadChannelchainWith in interface DataflowReadChannel<T>V - The type of values returned from the supplied closurepool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)closure - The function to invoke on all incoming values as part of the new operator's bodypublic <V> DataflowReadChannel<V> chainWith(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, groovy.lang.Closure<V> closure)
DataflowReadChannelchainWith in interface DataflowReadChannel<T>V - The type of values returned from the supplied closuregroup - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)closure - The function to invoke on all incoming values as part of the new operator's bodypublic <V> DataflowReadChannel<V> or(groovy.lang.Closure<V> closure)
DataflowReadChannelor in interface DataflowReadChannel<T>V - The type of values returned from the supplied closureclosure - The function to invoke on all incoming values as part of the new operator's bodypublic DataflowReadChannel<T> filter(groovy.lang.Closure<java.lang.Boolean> closure)
DataflowReadChannelfilter in interface DataflowReadChannel<T>closure - The filter function to invoke on all incoming values to decide whether to pass the value on or notpublic DataflowReadChannel<T> filter(Pool pool, groovy.lang.Closure<java.lang.Boolean> closure)
DataflowReadChannelfilter in interface DataflowReadChannel<T>pool - The thread pool to useclosure - The filter function to invoke on all incoming values to decide whether to pass the value on or notpublic DataflowReadChannel<T> filter(PGroup group, groovy.lang.Closure<java.lang.Boolean> closure)
DataflowReadChannelfilter in interface DataflowReadChannel<T>group - The PGroup to useclosure - The filter function to invoke on all incoming values to decide whether to pass the value on or notpublic DataflowReadChannel<T> filter(java.util.Map<java.lang.String,java.lang.Object> params, groovy.lang.Closure<java.lang.Boolean> closure)
DataflowReadChannelfilter in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)closure - The filter function to invoke on all incoming values to decide whether to pass the value on or notpublic DataflowReadChannel<T> filter(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, groovy.lang.Closure<java.lang.Boolean> closure)
DataflowReadChannelfilter in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)closure - The filter function to invoke on all incoming values to decide whether to pass the value on or notpublic DataflowReadChannel<T> filter(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, groovy.lang.Closure<java.lang.Boolean> closure)
DataflowReadChannelfilter in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)closure - The filter function to invoke on all incoming values to decide whether to pass the value on or notpublic void into(DataflowWriteChannel<T> target)
DataflowReadChannelinto in interface DataflowReadChannel<T>target - The channel to copy data intopublic void into(Pool pool, DataflowWriteChannel<T> target)
DataflowReadChannelinto in interface DataflowReadChannel<T>pool - The thread pool to usetarget - The channel to copy data intopublic void into(PGroup group, DataflowWriteChannel<T> target)
DataflowReadChannelinto in interface DataflowReadChannel<T>group - The PGroup to usetarget - The channel to copy data intopublic void into(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target)
DataflowReadChannelinto in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target - The channel to copy data intopublic void into(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target)
DataflowReadChannelinto in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target - The channel to copy data intopublic void into(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target)
DataflowReadChannelinto in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target - The channel to copy data intopublic void or(DataflowWriteChannel<T> target)
DataflowReadChannelor in interface DataflowReadChannel<T>target - The channel to copy data intopublic void split(DataflowWriteChannel<T> target1, DataflowWriteChannel<T> target2)
DataflowReadChannelsplit in interface DataflowReadChannel<T>target1 - The first channel to copy data intotarget2 - The second channel to copy data intopublic void split(Pool pool, DataflowWriteChannel<T> target1, DataflowWriteChannel<T> target2)
DataflowReadChannelsplit in interface DataflowReadChannel<T>pool - The thread pool to usetarget1 - The first channel to copy data intotarget2 - The second channel to copy data intopublic void split(PGroup group, DataflowWriteChannel<T> target1, DataflowWriteChannel<T> target2)
DataflowReadChannelsplit in interface DataflowReadChannel<T>group - The PGroup to usetarget1 - The first channel to copy data intotarget2 - The second channel to copy data intopublic void split(java.util.List<DataflowWriteChannel<T>> targets)
DataflowReadChannelsplit in interface DataflowReadChannel<T>targets - The channels to copy data intopublic void split(Pool pool, java.util.List<DataflowWriteChannel<T>> targets)
DataflowReadChannelsplit in interface DataflowReadChannel<T>pool - The thread pool to usetargets - The channels to copy data intopublic void split(PGroup group, java.util.List<DataflowWriteChannel<T>> targets)
DataflowReadChannelsplit in interface DataflowReadChannel<T>group - The PGroup to usetargets - The channels to copy data intopublic void split(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> target1,
DataflowWriteChannel<T> target2)
DataflowReadChannelsplit in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target1 - The first channel to copy data intotarget2 - The second channel to copy data intopublic void split(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target1, DataflowWriteChannel<T> target2)
DataflowReadChannelsplit in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target1 - The first channel to copy data intotarget2 - The second channel to copy data intopublic void split(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target1, DataflowWriteChannel<T> target2)
DataflowReadChannelsplit in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target1 - The first channel to copy data intotarget2 - The second channel to copy data intopublic void split(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> targets)
DataflowReadChannelsplit in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)targets - The channels to copy data intopublic void split(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowWriteChannel<T>> targets)
DataflowReadChannelsplit in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)targets - The channels to copy data intopublic void split(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowWriteChannel<T>> targets)
DataflowReadChannelsplit in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)targets - The channels to copy data intopublic DataflowReadChannel<T> tap(DataflowWriteChannel<T> target)
DataflowReadChanneltap in interface DataflowReadChannel<T>target - The channel to tap data intopublic DataflowReadChannel<T> tap(Pool pool, DataflowWriteChannel<T> target)
DataflowReadChanneltap in interface DataflowReadChannel<T>pool - The thread pool to usetarget - The channel to tap data intopublic DataflowReadChannel<T> tap(PGroup group, DataflowWriteChannel<T> target)
DataflowReadChanneltap in interface DataflowReadChannel<T>group - The PGroup to usetarget - The channel to tap data intopublic DataflowReadChannel<T> tap(java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target)
DataflowReadChanneltap in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target - The channel to tap data intopublic DataflowReadChannel<T> tap(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target)
DataflowReadChanneltap in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target - The channel to tap data intopublic DataflowReadChannel<T> tap(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> target)
DataflowReadChanneltap in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)target - The channel to tap data intopublic <V> DataflowReadChannel<V> merge(DataflowReadChannel<java.lang.Object> other, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsother - The channel to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(Pool pool, DataflowReadChannel<java.lang.Object> other, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelspool - The thread pool to useother - The channel to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(PGroup group, DataflowReadChannel<java.lang.Object> other, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsgroup - The PGroup to useother - The channel to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(java.util.List<DataflowReadChannel<java.lang.Object>> others, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsothers - The channels to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(Pool pool, java.util.List<DataflowReadChannel<java.lang.Object>> others, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelspool - The thread pool to useothers - The channels to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(PGroup group, java.util.List<DataflowReadChannel<java.lang.Object>> others, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsgroup - The PGroup to useothers - The channels to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(java.util.Map<java.lang.String,java.lang.Object> params, DataflowReadChannel<java.lang.Object> other, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)other - The channel to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, DataflowReadChannel<java.lang.Object> other, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelspool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)other - The channel to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, DataflowReadChannel<java.lang.Object> other, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsgroup - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)other - The channel to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowReadChannel<java.lang.Object>> others, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)others - The channels to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowReadChannel<java.lang.Object>> others, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelspool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)others - The channels to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public <V> DataflowReadChannel<V> merge(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowReadChannel<java.lang.Object>> others, groovy.lang.Closure<V> closure)
DataflowReadChannelmerge in interface DataflowReadChannel<T>V - The type of values passed between the channelsgroup - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)others - The channels to merge withclosure - The function to invoke on all incoming values as part of the new operator's body. The number of arguments to the closure must match the number of input channels.public void binaryChoice(DataflowWriteChannel<T> trueBranch, DataflowWriteChannel<T> falseBranch, groovy.lang.Closure<java.lang.Boolean> code)
DataflowReadChannelbinaryChoice in interface DataflowReadChannel<T>trueBranch - The channel to send data to if the closure returns truefalseBranch - The channel to send data to if the closure returns truecode - A closure directing data to either the true or the false output branchpublic void binaryChoice(Pool pool, DataflowWriteChannel<T> trueBranch, DataflowWriteChannel<T> falseBranch, groovy.lang.Closure<java.lang.Boolean> code)
DataflowReadChannelbinaryChoice in interface DataflowReadChannel<T>pool - The thread pool to usetrueBranch - The channel to send data to if the closure returns truefalseBranch - The channel to send data to if the closure returns truecode - A closure directing data to either the true or the false output branchpublic void binaryChoice(PGroup group, DataflowWriteChannel<T> trueBranch, DataflowWriteChannel<T> falseBranch, groovy.lang.Closure<java.lang.Boolean> code)
DataflowReadChannelbinaryChoice in interface DataflowReadChannel<T>group - The PGroup to usetrueBranch - The channel to send data to if the closure returns truefalseBranch - The channel to send data to if the closure returns truecode - A closure directing data to either the true or the false output branchpublic void binaryChoice(java.util.Map<java.lang.String,java.lang.Object> params,
DataflowWriteChannel<T> trueBranch,
DataflowWriteChannel<T> falseBranch,
groovy.lang.Closure<java.lang.Boolean> code)
DataflowReadChannelbinaryChoice in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)trueBranch - The channel to send data to if the closure returns truefalseBranch - The channel to send data to if the closure returns truecode - A closure directing data to either the true or the false output branchpublic void binaryChoice(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> trueBranch, DataflowWriteChannel<T> falseBranch, groovy.lang.Closure<java.lang.Boolean> code)
DataflowReadChannelbinaryChoice in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)trueBranch - The channel to send data to if the closure returns truefalseBranch - The channel to send data to if the closure returns truecode - A closure directing data to either the true or the false output branchpublic void binaryChoice(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, DataflowWriteChannel<T> trueBranch, DataflowWriteChannel<T> falseBranch, groovy.lang.Closure<java.lang.Boolean> code)
DataflowReadChannelbinaryChoice in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)trueBranch - The channel to send data to if the closure returns truefalseBranch - The channel to send data to if the closure returns truecode - A closure directing data to either the true or the false output branchpublic void choice(java.util.List<DataflowWriteChannel<T>> outputs, groovy.lang.Closure<java.lang.Integer> code)
DataflowReadChannelchoice in interface DataflowReadChannel<T>outputs - The channels to send data to of the closure returns truecode - A closure returning an index of the output channel to direct the data topublic void choice(Pool pool, java.util.List<DataflowWriteChannel<T>> outputs, groovy.lang.Closure<java.lang.Integer> code)
DataflowReadChannelchoice in interface DataflowReadChannel<T>pool - The thread pool to useoutputs - The channels to send data to.code - A closure returning an index of the output channel to direct the data topublic void choice(PGroup group, java.util.List<DataflowWriteChannel<T>> outputs, groovy.lang.Closure<java.lang.Integer> code)
DataflowReadChannelchoice in interface DataflowReadChannel<T>group - The PGroup to useoutputs - The channels to send data to.code - A closure returning an index of the output channel to direct the data topublic void choice(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<T>> outputs,
groovy.lang.Closure<java.lang.Integer> code)
DataflowReadChannelchoice in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)outputs - The channels to send data to of the closure returns truecode - A closure returning an index of the output channel to direct the data topublic void choice(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowWriteChannel<T>> outputs, groovy.lang.Closure<java.lang.Integer> code)
DataflowReadChannelchoice in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)outputs - The channels to send data to.code - A closure returning an index of the output channel to direct the data topublic void choice(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowWriteChannel<T>> outputs, groovy.lang.Closure<java.lang.Integer> code)
DataflowReadChannelchoice in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)outputs - The channels to send data to.code - A closure returning an index of the output channel to direct the data topublic void separate(java.util.List<DataflowWriteChannel<?>> outputs, groovy.lang.Closure<java.util.List<java.lang.Object>> code)
DataflowReadChannelseparate in interface DataflowReadChannel<T>outputs - The channels to send data to.code - A closure returning a list of values to pass to the output channels. Values are output to the output channels with identical index.public void separate(Pool pool, java.util.List<DataflowWriteChannel<?>> outputs, groovy.lang.Closure<java.util.List<java.lang.Object>> code)
DataflowReadChannelseparate in interface DataflowReadChannel<T>pool - The thread pool to useoutputs - The channels to send data to.code - A closure returning a list of values to pass to the output channels. Values are output to the output channels with identical index.public void separate(PGroup group, java.util.List<DataflowWriteChannel<?>> outputs, groovy.lang.Closure<java.util.List<java.lang.Object>> code)
DataflowReadChannelseparate in interface DataflowReadChannel<T>group - The PGroup to useoutputs - The channels to send data to.code - A closure returning a list of values to pass to the output channels. Values are output to the output channels with identical index.public void separate(java.util.Map<java.lang.String,java.lang.Object> params,
java.util.List<DataflowWriteChannel<?>> outputs,
groovy.lang.Closure<java.util.List<java.lang.Object>> code)
DataflowReadChannelseparate in interface DataflowReadChannel<T>params - Additional parameters to initialize the operator with (e.g. listeners or maxForks)outputs - The channels to send data to.code - A closure returning a list of values to pass to the output channels. Values are output to the output channels with identical index.public void separate(Pool pool, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowWriteChannel<?>> outputs, groovy.lang.Closure<java.util.List<java.lang.Object>> code)
DataflowReadChannelseparate in interface DataflowReadChannel<T>pool - The thread pool to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)outputs - The channels to send data to.code - A closure returning a list of values to pass to the output channels. Values are output to the output channels with identical index.public void separate(PGroup group, java.util.Map<java.lang.String,java.lang.Object> params, java.util.List<DataflowWriteChannel<?>> outputs, groovy.lang.Closure<java.util.List<java.lang.Object>> code)
DataflowReadChannelseparate in interface DataflowReadChannel<T>group - The PGroup to useparams - Additional parameters to initialize the operator with (e.g. listeners or maxForks)outputs - The channels to send data to.code - A closure returning a list of values to pass to the output channels. Values are output to the output channels with identical index.public DataflowChannelEventListenerManager<T> getEventManager()
DataflowReadChannelgetEventManager in interface DataflowReadChannel<T>public BindErrorListenerManager<T> getBindErrorManager()
private DataflowChannelEventOrchestrator<T> createEventManager()
private void fireOnMessage(T value)
private void fireBindError(T value, boolean unique)
private void fireBindError(java.lang.Throwable e)
public static <V> DataflowExpression<V> transform(java.lang.Object another, groovy.lang.Closure closure)
V - Type of the bound valuesanother - A list of DataflowVariables to transformclosure - The transformation function, which must take the same number of arguments as there are elements in the "another" listprotected final void subscribe()
protected T evaluate()
protected void subscribe(DataflowExpression.DataflowExpressionsCollector listener)
public final java.lang.Object invokeMethod(java.lang.String name,
java.lang.Object args)
invokeMethod in interface groovy.lang.GroovyObjectpublic final java.lang.Object getProperty(java.lang.String propertyName)
getProperty in interface groovy.lang.GroovyObjectpropertyName - The name of the property to retrievepublic final void setMetaClass(groovy.lang.MetaClass metaClass)
setMetaClass in interface groovy.lang.GroovyObjectpublic final void setProperty(java.lang.String propertyName,
java.lang.Object newValue)
setProperty in interface groovy.lang.GroovyObjectpublic final groovy.lang.MetaClass getMetaClass()
getMetaClass in interface groovy.lang.GroovyObjectpublic java.lang.String toString()
toString in class java.lang.Object