All Known Subinterfaces:`Block.Impl`, `Block.MultiOutImpl`, `Block.OutImpl`

* * *

public interface Block

Core API for specifying dataflow code using the builder pattern. On module deployment compiles to efficient bytecode.
For learning, a Block can be executed directly using the [`execute method`](/content/javadoc/com/rpl/rama/Block.Impl.html#execute(/index.html)).

Parameters with "arg" in the name can be a var, value, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).

See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ## Nested Class Summary

Nested Classes

Modifier and Type

Interface

Description

`static interface`

`Block.Impl`

`static interface`

`Block.MultiOutImpl`

`static interface`

`Block.Out`

`static interface`

`Block.OutImpl`

- ## Method Summary

Static Methods

Modifier and Type

Method

Description

`static Block.Impl`

`ackReturn(Object arg)`

Accumulate value according to depot source options to return with depot appends done with AckLevel.ACK

`static Block.OutImpl`

`agg(Agg agg)`

Aggregates input in a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)) to a single value.

`static Block.Impl`

`agg(String pstateVar,
Agg agg)`

Update PState partition on current task with given aggregator.

`static Block.Impl`

`allPartition()`

Executes subsequent code on all tasks in module

`static Block.Impl`

`allPartition(String pobjectVar)`

Executes subsequent code on all partitions of given depot or PState

`static Block.Impl`

`anchor(String anchor)`

Attaches a no-op node with the given anchor

`static Block.Impl`

`atomicBlock(Block block)`

Runs subblock until it completes synchronously.

`static Block.Impl`

`batchBlock(Block batchBlock)`

Specifies a [batch block](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html).

`static Block.Impl`

`branch(String anchor,
Block block)`

`static Block.OutImpl`

`compoundAgg(CompoundAgg compoundAgg)`

Aggregates input in a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)) to a single value.

`static Block.Impl`

`compoundAgg(String pstateVar,
CompoundAgg compoundAgg)`

Update PState partition on current task with given aggregation template.

`static Block.Impl`

`cond(Case... cases)`

Evaluates condition for each [`Case`](/content/javadoc/com/rpl/rama/Case.html "interface in com.rpl.rama"/index.html) in order.

`static Block.Impl`

`continueLoop(Object... args)`

Executes another iteration of the loop.

`static Block.Impl`

`create()`

Creates an empty Block that can have additional code attached.

`static Block.Impl`

`customPartition(RamaFunction1<Integer,Integer> op)`

Changes task to task ID specified by custom partitioner function with one argument.

`static <T0> Block.Impl`

`customPartition(RamaFunction2<Integer,T0,Integer> op,
Object arg0)`

Changes task to task ID specified by custom partitioner function with two arguments.

`static <T0,
T1> Block.Impl`

`customPartition(RamaFunction3<Integer,T0,T1,Integer> op,
Object arg0,
Object arg1)`

Changes task to task ID specified by custom partitioner function with three arguments.

`static <T0,
T1,
T2>
Block.Impl`

`customPartition(RamaFunction4<Integer,T0,T1,T2,Integer> op,
Object arg0,
Object arg1,
Object arg2)`

Changes task to task ID specified by custom partitioner function with four arguments.

`static <T0,
T1,
T2,
T3>
Block.Impl`

`customPartition(RamaFunction5<Integer,T0,T1,T2,T3,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Changes task to task ID specified by custom partitioner function with five arguments.

`static <T0,
T1,
T2,
T3,
T4>
Block.Impl`

`customPartition(RamaFunction6<Integer,T0,T1,T2,T3,T4,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Changes task to task ID specified by custom partitioner function with six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5>
Block.Impl`

`customPartition(RamaFunction7<Integer,T0,T1,T2,T3,T4,T5,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Changes task to task ID specified by custom partitioner function with seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6>
Block.Impl`

`customPartition(RamaFunction8<Integer,T0,T1,T2,T3,T4,T5,T6,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Changes task to task ID specified by custom partitioner function with eight arguments.

`static Block.Impl`

`customPartition(String pobjectVar,
RamaFunction1<Integer,Integer> op)`

Changes to task containing PState partition specified by custom partitioner function with one argument.

`static <T0> Block.Impl`

`customPartition(String pobjectVar,
RamaFunction2<Integer,T0,Integer> op,
Object arg0)`

Changes to task containing PState partition specified by custom partitioner function with two arguments.

`static <T0,
T1> Block.Impl`

`customPartition(String pobjectVar,
RamaFunction3<Integer,T0,T1,Integer> op,
Object arg0,
Object arg1)`

Changes to task containing PState partition specified by custom partitioner function with three arguments.

`static <T0,
T1,
T2>
Block.Impl`

`customPartition(String pobjectVar,
RamaFunction4<Integer,T0,T1,T2,Integer> op,
Object arg0,
Object arg1,
Object arg2)`

Changes to task containing PState partition specified by custom partitioner function with four arguments.

`static <T0,
T1,
T2,
T3>
Block.Impl`

`customPartition(String pobjectVar,
RamaFunction5<Integer,T0,T1,T2,T3,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Changes to task containing PState partition specified by custom partitioner function with five arguments.

`static <T0,
T1,
T2,
T3,
T4>
Block.Impl`

`customPartition(String pobjectVar,
RamaFunction6<Integer,T0,T1,T2,T3,T4,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Changes to task containing PState partition specified by custom partitioner function with six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5>
Block.Impl`

`customPartition(String pobjectVar,
RamaFunction7<Integer,T0,T1,T2,T3,T4,T5,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Changes to task containing PState partition specified by custom partitioner function with seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6>
Block.Impl`

`customPartition(String pobjectVar,
RamaFunction8<Integer,T0,T1,T2,T3,T4,T5,T6,Integer> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Changes to task containing PState partition specified by custom partitioner function with eight arguments.

`static Block.OutImpl`

`depotPartitionAppend(String depotVar,
Object arg)`

Append data to the partition of the depot represented by current task.

`static Block.OutImpl`

`depotPartitionAppend(String depotVar,
Object arg,
AckLevel ackLevel)`

Append data to the partition of the depot represented by current task.

`static Block.Impl`

`directPartition(Object argTaskId)`

Changes to specified task ID

`static Block.Impl`

`directPartition(String pobjectVar,
Object argPartitionId)`

Changes to specified partition of the given depot or PState

`static <R> Block.OutImpl`

`each(RamaFunction0<R> op)`

Invokes a function of zero arguments.

`static <T0,
R> Block.OutImpl`

`each(RamaFunction1<T0,R> op,
Object arg0)`

Invokes a function of one argument.

`static <T0,
T1,
R>
Block.OutImpl`

`each(RamaFunction2<T0,T1,R> op,
Object arg0,
Object arg1)`

Invokes a function of two arguments.

`static <T0,
T1,
T2,
R>
Block.OutImpl`

`each(RamaFunction3<T0,T1,T2,R> op,
Object arg0,
Object arg1,
Object arg2)`

Invokes a function of three arguments.

`static <T0,
T1,
T2,
T3,
R>
Block.OutImpl`

`each(RamaFunction4<T0,T1,T2,T3,R> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Invokes a function of four arguments.

`static <T0,
T1,
T2,
T3,
T4,
R>
Block.OutImpl`

`each(RamaFunction5<T0,T1,T2,T3,T4,R> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Invokes a function of five arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
R>
Block.OutImpl`

`each(RamaFunction6<T0,T1,T2,T3,T4,T5,R> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Invokes a function of six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
R>
Block.OutImpl`

`each(RamaFunction7<T0,T1,T2,T3,T4,T5,T6,R> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Invokes a function of seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
R>
Block.OutImpl`

`each(RamaFunction8<T0,T1,T2,T3,T4,T5,T6,T7,R> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Invokes a function of eight arguments.

`static Block.MultiOutImpl`

`each(RamaOperation0 op)`

Invokes an operation of zero arguments.

`static <T0> Block.MultiOutImpl`

`each(RamaOperation1<T0> op,
Object arg0)`

Invokes an operation of one argument.

`static <T0,
T1> Block.MultiOutImpl`

`each(RamaOperation2<T0,T1> op,
Object arg0,
Object arg1)`

Invokes an operation of two arguments.

`static <T0,
T1,
T2>
Block.MultiOutImpl`

`each(RamaOperation3<T0,T1,T2> op,
Object arg0,
Object arg1,
Object arg2)`

Invokes an operation of three arguments.

`static <T0,
T1,
T2,
T3>
Block.MultiOutImpl`

`each(RamaOperation4<T0,T1,T2,T3> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Invokes an operation of four arguments.

`static <T0,
T1,
T2,
T3,
T4>
Block.MultiOutImpl`

`each(RamaOperation5<T0,T1,T2,T3,T4> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Invokes an operation of five arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5>
Block.MultiOutImpl`

`each(RamaOperation6<T0,T1,T2,T3,T4,T5> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Invokes an operation of six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6>
Block.MultiOutImpl`

`each(RamaOperation7<T0,T1,T2,T3,T4,T5,T6> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Invokes an operation of seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7>
Block.MultiOutImpl`

`each(RamaOperation8<T0,T1,T2,T3,T4,T5,T6,T7> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Invokes an operation of eight arguments.

`static Block.OutImpl`

`eachAsync(RamaFunction0<CompletableFuture> op)`

Invokes a function of zero arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0> Block.OutImpl`

`eachAsync(RamaFunction1<T0,CompletableFuture> op,
Object arg0)`

Invokes a function of one argument that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1> Block.OutImpl`

`eachAsync(RamaFunction2<T0,T1,CompletableFuture> op,
Object arg0,
Object arg1)`

Invokes a function of two arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1,
T2>
Block.OutImpl`

`eachAsync(RamaFunction3<T0,T1,T2,CompletableFuture> op,
Object arg0,
Object arg1,
Object arg2)`

Invokes a function of three arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1,
T2,
T3>
Block.OutImpl`

`eachAsync(RamaFunction4<T0,T1,T2,T3,CompletableFuture> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Invokes a function of four arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1,
T2,
T3,
T4>
Block.OutImpl`

`eachAsync(RamaFunction5<T0,T1,T2,T3,T4,CompletableFuture> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Invokes a function of five arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1,
T2,
T3,
T4,
T5>
Block.OutImpl`

`eachAsync(RamaFunction6<T0,T1,T2,T3,T4,T5,CompletableFuture> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Invokes a function of six arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6>
Block.OutImpl`

`eachAsync(RamaFunction7<T0,T1,T2,T3,T4,T5,T6,CompletableFuture> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Invokes a function of seven arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7>
Block.OutImpl`

`eachAsync(RamaFunction8<T0,T1,T2,T3,T4,T5,T6,T7,CompletableFuture> op,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Invokes a function of eight arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

`static Block.Impl`

`emitLoop(Object... args)`

Emits from a loop.

`static Block.OutImpl`

`explodeMaterialized(String pstateVar)`

Emits all tuples across all partitions of a temporary PState created from [`materialize(java.lang.Object...)`](/content/javadoc/com/rpl/rama/Block.html#materialize(java.lang.Object.../index.html)).

`static Block.OutImpl`

`explodeMicrobatch(String microbatchVar)`

Emits all data for this microbatch source across all partitions of depot

`static Block.Impl`

`freshBatchSource()`

Declares a new batch source within pre-agg portion of a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block))

`static Block.Impl`

`globalPartition()`

Changes to task 0

`static Block.Impl`

`globalPartition(String pobjectVar)`

Changes to partition 0 of given depot or PState.

`static Block.Impl`

`groupBy(String var0,
Block groupByBlock)`

Groups input by one key and performs aggregations in the specified block on each group of data independently.

`static Block.Impl`

`groupBy(String var0,
String var1,
Block groupByBlock)`

Groups input by two keys and performs aggregations in the specified block on each group of data independently.

`static Block.Impl`

`groupBy(String var0,
String var1,
String var2,
Block groupByBlock)`

Groups input by three keys and performs aggregations in the specified block on each group of data independently.

`static Block.Impl`

`groupBy(String var0,
String var1,
String var2,
String var3,
Block groupByBlock)`

Groups input by four keys and performs aggregations in the specified block on each group of data independently.

`static Block.Impl`

`groupBy(String var0,
String var1,
String var2,
String var3,
String var4,
Block groupByBlock)`

Groups input by five keys and performs aggregations in the specified block on each group of data independently.

`static Block.Impl`

`groupBy(String var0,
String var1,
String var2,
String var3,
String var4,
String var5,
Block groupByBlock)`

Groups input by six keys and performs aggregations in the specified block on each group of data independently.

`static Block.Impl`

`hashPartition(Object arg)`

Changes tasks based on hash of argument modulo number of tasks in module.

`static Block.Impl`

`hashPartition(String pobjectVar,
Object arg)`

Changes tasks based on hash of argument modulo number of partitions of given depot or PState.

`static Block.Impl`

`hook(String anchor)`

Changes attachment point for subsequent code to node with given anchor

`static Block.Impl`

`ifTrue(Object arg,
Block thenBlock)`

If argument is truthy (not null or boolean false), runs thenBlock.

`static Block.Impl`

`ifTrue(Object arg,
Block thenBlock,
Block elseBlock)`

If argument is truthy (not null or boolean false), runs thenBlock – otherwise, runs elseBlock.

`static Block.OutImpl`

`invokeQuery(String queryVarOrTopologyName,
Object... args)`

Invokes a colocated or [mirror query topology](/content/docs/~/module-dependencies.html)

`static Block.Impl`

`keepTrue(Object arg)`

Continues dataflow execution only if arg is truthy (not null or boolean false).

`static Block.Impl`

`limitAgg(LimitAgg limitAgg)`

Limits incoming data to a fixed amount according to optional sort options.

`static Block.Impl`

`localClear(String pstateVar)`

Removes all data from the PState partition on current task.

`static Block.OutImpl`

`localSelect(String pstateVar,
Path path)`

Navigates into the PState partition on current task using the given [`Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html).

`static Block.OutImpl`

`localSelect(String pstateVar,
Path path,
SelectOptions options)`

`static Block.Impl`

`localTransform(String pstateVar,
Path path)`

Executes [`transform Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) on the PState partition on current task.

`static Block.OutImpl`

`loop(Block loopBlock)`

Creates a dataflow loop with the given body.

`static Block.OutImpl`

`loopWithVars(LoopVars loopVars,
Block loopBlock)`

Creates a dataflow loop with the given vars and body.

`static Block.Impl`

`macro(Block block)`

Inserts all code from given Block into the current callsite.

`static Block.OutImpl`

`materialize(Object... args)`

Produces a temporary PState of tuples within a batch block in a microbatch topology.

`static Block.Impl`

`originPartition()`

Changes back to starting task for a query topology invocation.

`static Block.Impl`

`pathPartition(String pstateVar,
Path path)`

Changes to task for given PState containing data for given [`Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html)

`static Block.OutImpl`

`select(Object arg,
Path path)`

Changes to task for given PState containing data for given [`Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) and then performs
a [`localSelect`](/content/javadoc/com/rpl/rama/Block.html#localSelect(java.lang.String,com.rpl.rama.Path)).

`static Block.OutImpl`

`select(Object arg,
Path path,
SelectOptions options)`

`static Block.Impl`

`shufflePartition()`

Changes to a random task chosen uniformly.

`static Block.OutImpl`

`subBatch(SubBatch subBatch)`

Use specified SubBatch as a batch source in a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)).

`static Block.Impl`

`subSource(Object arg,
SubSource... subsources)`

Conditionally dispatch code based on type of input object

`static Block.Impl`

`unify(String anchor1,
String anchor2,
String... anchors)`

Attaches subsequent code to each of the anchors specified, merging computation flowing out
of those nodes.

`static Block.Impl`

`yieldIfOvertime()`

Yield the task thread if current event is using too much time.

- ## Method Details

- ### create )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)create()

Creates an empty Block that can have additional code attached. `Block.each(Ops.PRINTLN)` is the
    same as `Block.create().each(Ops.PRINTLN)`

- ### anchor )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)anchor( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") anchor)

Attaches a no-op node with the given anchor

Parameters:`anchor` \- Label for the nodeSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### atomicBlock )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)atomicBlock( [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) block)

Runs subblock until it completes synchronously. Then runs code following atomicBlock exactly one time.

Parameters:`block` \- SubblockSee Also:

- [Detailed atomicBlock documentation](/content/docs/~/intermediate-dataflow.html#_atomicblock/index.html)

- ### branch )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)branch( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") anchor,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) block)

- ### each )

static<R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction0](/content/javadoc/com/rpl/rama/ops/RamaFunction0.html "interface in com.rpl.rama.ops"/index.html) <R> op)

Invokes a function of zero arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Invokes a function of one argument. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Invokes a function of two arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Invokes a function of three arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Invokes a function of four arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Invokes a function of five arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Invokes a function of six arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Invokes a function of seven arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7,
    R>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7,R> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Invokes a function of eight arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    A function always emits exactly one time. Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations can be
    found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation0](/content/javadoc/com/rpl/rama/ops/RamaOperation0.html "interface in com.rpl.rama.ops"/index.html) op)

Invokes an operation of zero arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation1](/content/javadoc/com/rpl/rama/ops/RamaOperation1.html "interface in com.rpl.rama.ops"/index.html) <T0> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Invokes an operation of one argument. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation2](/content/javadoc/com/rpl/rama/ops/RamaOperation2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Invokes an operation of two arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation3](/content/javadoc/com/rpl/rama/ops/RamaOperation3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Invokes an operation of three arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation4](/content/javadoc/com/rpl/rama/ops/RamaOperation4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Invokes an operation of four arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation5](/content/javadoc/com/rpl/rama/ops/RamaOperation5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Invokes an operation of five arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation6](/content/javadoc/com/rpl/rama/ops/RamaOperation6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Invokes an operation of six arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation7](/content/javadoc/com/rpl/rama/ops/RamaOperation7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Invokes an operation of seven arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### each )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7>[Block.MultiOutImpl](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html "interface in com.rpl.rama"/index.html)each( [RamaOperation8](/content/javadoc/com/rpl/rama/ops/RamaOperation8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7> op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Invokes an operation of eight arguments. Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    An operation can emit any number of times to any number of output streams. Output can be captured
    with calls to [`outStream`](/content/javadoc/com/rpl/rama/Block.MultiOutImpl.html#outStream(java.lang.String,java.lang.String,java.lang.String.../index.html)) and
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. Built-in functions and operations
    can be found as static fields of the [`Ops class`](/content/javadoc/com/rpl/rama/ops/Ops.html "class in com.rpl.rama.ops"/index.html).

Parameters:`op` \- Operation to execute. Can also be specified as a lambda or method reference.See Also:

- [Tutorial](/content/docs/~/tutorial1.html)

- ### eachAsync )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction0](/content/javadoc/com/rpl/rama/ops/RamaFunction0.html "interface in com.rpl.rama.ops"/index.html) < [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op)

Invokes a function of zero arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Invokes a function of one argument that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Invokes a function of two arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1,
    T2>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Invokes a function of three arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1,
    T2,
    T3>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Invokes a function of four arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1,
    T2,
    T3,
    T4>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Invokes a function of five arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Invokes a function of six arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Invokes a function of seven arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### eachAsync )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7>[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)eachAsync( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7, [CompletableFuture](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletableFuture.html "class or interface in java.util.concurrent") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Invokes a function of eight arguments that returns its result asynchronously via a returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html). This is used to interact with external systems
    without blocking the task thread.
    Each argument can be a value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).
    Output can be captured with a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) following this node. The var bound by [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html))
    is the value delivered to the returned [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html).

Parameters:`op` \- Function to execute. Can also be specified as a lambda or method reference.See Also:

- [Documentation on integrating external tools](/content/docs/~/integrating.html)

- ### customPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"), [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op)

Changes task to task ID specified by custom partitioner function with one argument. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Changes task to task ID specified by custom partitioner function with two arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Changes task to task ID specified by custom partitioner function with three arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Changes task to task ID specified by custom partitioner function with four arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Changes task to task ID specified by custom partitioner function with five arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3,
    T4>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3,T4, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Changes task to task ID specified by custom partitioner function with six arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3,T4,T5, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Changes task to task ID specified by custom partitioner function with seven arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3,T4,T5,T6, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Changes task to task ID specified by custom partitioner function with eight arguments. Custom partitioner function
    receives all dataflow arguments followed by the number of tasks in the module.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"), [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op)

Changes to task containing PState partition specified by custom partitioner function with one argument. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Changes to task containing PState partition specified by custom partitioner function with two arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Changes to task containing PState partition specified by custom partitioner function with three arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Changes to task containing PState partition specified by custom partitioner function with four arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Changes to task containing PState partition specified by custom partitioner function with five arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3,
    T4>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3,T4, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Changes to task containing PState partition specified by custom partitioner function with six arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3,T4,T5, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Changes to task containing PState partition specified by custom partitioner function with seven arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### customPartition )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6>[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)customPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) < [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang"),T0,T1,T2,T3,T4,T5,T6, [Integer](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Integer.html "class or interface in java.lang") > op,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Changes to task containing PState partition specified by custom partitioner function with eight arguments. Custom
    partitioner function receives all dataflow arguments followed by the number of partitions of the PState.

Parameters:`op` \- Custom partitioner function. Can also be specified as a lambda or method reference.See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### groupBy )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)groupBy( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") var0,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) groupByBlock)

Groups input by one key and performs aggregations in the specified block on each group of data independently.
    Only usable in [`batchBlock`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)). Emits into postagg the vars for keys
    and results of aggregations.

Parameters:`groupByBlock` \- Block containing aggregation codeSee Also:

- [Detailed groupBy documentation](/content/docs/~/aggregators.html#_group_by_operator/index.html)

- ### groupBy )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)groupBy( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") var0,
    [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") var1,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) groupByBlock)

Groups input by two keys and performs aggregations in the specified block on each group of data independently.
    Only usable in [`batchBlock`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)). Emits into postagg the vars for keys
    and results of aggregations.

Parameters:`groupByBlock` \- Block containing aggregation codeSee Also:

- [Detailed groupBy documentation](/content/docs/~/aggregators.html#_group_by_operator/index.html)

- ### groupBy )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)groupBy( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") var0,
    [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") var1,
    [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") var2,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) groupByBlock)

Groups input by three keys and performs aggregations in the specified block on each group of data independently.
    Only usable in [`batchBlock`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)). Emits into postagg the vars for keys
    and results of aggregations.

Parameters:`groupByBlock` \- Block containing aggregation codeSee Also:

- [Detailed groupBy documentation](/content/docs/~/aggregators.html#_group_by_operator/index.html)

- ### groupBy )

Groups input by four keys and performs aggregations in the specified block on each group of data independently.
    Only usable in [`batchBlock`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)). Emits into postagg the vars for keys
    and results of aggregations.

Parameters:`groupByBlock` \- Block containing aggregation codeSee Also:

- [Detailed groupBy documentation](/content/docs/~/aggregators.html#_group_by_operator/index.html)

- ### groupBy )

Groups input by five keys and performs aggregations in the specified block on each group of data independently.
    Only usable in [`batchBlock`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)). Emits into postagg the vars for keys
    and results of aggregations.

Parameters:`groupByBlock` \- Block containing aggregation codeSee Also:

- [Detailed groupBy documentation](/content/docs/~/aggregators.html#_group_by_operator/index.html)

- ### groupBy )

Groups input by six keys and performs aggregations in the specified block on each group of data independently.
    Only usable in [`batchBlock`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)). Emits into postagg the vars for keys
    and results of aggregations.

Parameters:`groupByBlock` \- Block containing aggregation codeSee Also:

- [Detailed groupBy documentation](/content/docs/~/aggregators.html#_group_by_operator/index.html)

- ### hook )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)hook( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") anchor)

Changes attachment point for subsequent code to node with given anchor

Parameters:`anchor` \- Label of node to attach toSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### ifTrue )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)ifTrue( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) thenBlock)

If argument is truthy (not null or boolean false), runs thenBlock. In either case,
    continues to the code following the ifTrue.

Parameters:`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html) to test for truthiness (not null or boolean false). Common to use an
     [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html) here.`thenBlock` \- Subblock run if condition passesSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### ifTrue )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)ifTrue( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) thenBlock,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) elseBlock)

If argument is truthy (not null or boolean false), runs thenBlock – otherwise, runs elseBlock.
    In either case, continues to the code following the ifTrue.

Parameters:`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html) to test for truthiness (not null or boolean false). Common to
     use an [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html) here.`thenBlock` \- Subblock run if condition passes`elseBlock` \- Subblock run if condition does not passSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### keepTrue )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)keepTrue( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg)

Continues dataflow execution only if arg is truthy (not null or boolean false).

Parameters:`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)See Also:

- [Detailed keepTrue documentation](/content/docs/~/intermediate-dataflow.html#_keeptrue/index.html)

- ### unify )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)unify( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") anchor1,
    [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") anchor2,
    [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang")... anchors)

Attaches subsequent code to each of the anchors specified, merging computation flowing out
    of those nodes. After the unify the only vars in scope are vars that exist in all parent branches.
    Must unify at least two nodes.

See Also:

- [Unify documentation](/content/docs/~/tutorial4.html#_unifying_dataflow_branches/index.html)

- ### loop )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)loop( [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) loopBlock)

Creates a dataflow loop with the given body. [`emitLoop`](/content/javadoc/com/rpl/rama/Block.html#emitLoop(java.lang.Object.../index.html)) is used
    to emit from the loop, and [`continueLoop`](/content/javadoc/com/rpl/rama/Block.html#continueLoop(java.lang.Object.../index.html)) is used to execute
    the loop body again. A loop call can be optionally followed by a call to
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) to capture any output emitted as vars.

Parameters:`loopBlock` \- Body of the loopSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### loopWithVars )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)loopWithVars( [LoopVars](/content/javadoc/com/rpl/rama/LoopVars.html "interface in com.rpl.rama"/index.html) loopVars,
    [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) loopBlock)

Creates a dataflow loop with the given vars and body. [`emitLoop`](/content/javadoc/com/rpl/rama/Block.html#emitLoop(java.lang.Object.../index.html)) is
    used to emit from the loop, and [`continueLoop`](/content/javadoc/com/rpl/rama/Block.html#continueLoop(java.lang.Object.../index.html)) is used to execute
    the loop body again. The vars are given initial values and updated with each call to
    [`continueLoop`](/content/javadoc/com/rpl/rama/Block.html#continueLoop(java.lang.Object.../index.html)). A loopWithVars call can be optionally followed by
    a call to [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) to capture any output emitted as vars.

Parameters:`loopVars` \- Declaration of vars for each iteration of loop`loopBlock` \- Body of the loopSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### continueLoop )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)continueLoop( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... args)

Executes another iteration of the loop. Can only be used within [`loop`](/content/javadoc/com/rpl/rama/Block.html#loop(com.rpl.rama.Block)) or
    [`loopWithVars`](/content/javadoc/com/rpl/rama/Block.html#loopWithVars(com.rpl.rama.LoopVars,com.rpl.rama.Block)). When used with
    [`loopWithVars`](/content/javadoc/com/rpl/rama/Block.html#loopWithVars(com.rpl.rama.LoopVars,com.rpl.rama.Block)), must provide as input values for all loop vars for the
    next loop iteration.

Parameters:`args` \- Values for loop vars for next iteration of loopSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### emitLoop )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)emitLoop( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... args)

Emits from a loop. Can only be used within [`loop`](/content/javadoc/com/rpl/rama/Block.html#loop(com.rpl.rama.Block)) or
    [`loopWithVars`](/content/javadoc/com/rpl/rama/Block.html#loopWithVars(com.rpl.rama.LoopVars,com.rpl.rama.Block)). This is only way for code following
    [`loop`](/content/javadoc/com/rpl/rama/Block.html#loop(com.rpl.rama.Block)) or [`loopWithVars`](/content/javadoc/com/rpl/rama/Block.html#loopWithVars(com.rpl.rama.LoopVars,com.rpl.rama.Block)) to execute.

Parameters:`args` \- Values to emitSee Also:

- [Dataflow documentation](/content/docs/~/tutorial4.html)

- ### select )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)select( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Changes to task for given PState containing data for given [`Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) and then performs
    a [`localSelect`](/content/javadoc/com/rpl/rama/Block.html#localSelect(java.lang.String,com.rpl.rama.Path)). PState reference can be colocated PState or
    [mirror PState](/content/docs/~/module-dependencies.html).

Code after select stays on new task and does not go back to original task.

Parameters:`arg` \- PState or object to query. Only changes tasks if PState var.`path` \- Path definitionSee Also:

- [Path documentation](/content/docs/~/paths.html)
    - [PState documentation](/content/docs/~/pstates.html)

- ### select )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)select( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path,
    [SelectOptions](/content/javadoc/com/rpl/rama/SelectOptions.html "interface in com.rpl.rama"/index.html) options)

Code after select stays on new task and does not go back to original task.

Parameters:`arg` \- PState or object to query. Only changes tasks if PState var.`path` \- Path definition`options` \- Options for select callSee Also:

- [Path documentation](/content/docs/~/paths.html)
    - [PState documentation](/content/docs/~/pstates.html)

- ### localSelect )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)localSelect( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Navigates into the PState partition on current task using the given [`Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html).
    Emits once for every value navigated to. Use [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) to capture emits
    into subsequent dataflow code.

Parameters:`pstateVar` \- PState to query`path` \- Path definitionSee Also:

- [Path documentation](/content/docs/~/paths.html)
    - [PState documentation](/content/docs/~/pstates.html)

- ### localSelect )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)localSelect( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path,
    [SelectOptions](/content/javadoc/com/rpl/rama/SelectOptions.html "interface in com.rpl.rama"/index.html) options)

Parameters:`pstateVar` \- PState to query`path` \- Path definition`options` \- Options for localSelect callSee Also:

- [Path documentation](/content/docs/~/paths.html)
    - [PState documentation](/content/docs/~/pstates.html)

- ### localTransform )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)localTransform( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Executes [`transform Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) on the PState partition on current task.

Parameters:`pstateVar` \- PState to modify`path` \- Path definitionSee Also:

- [Path documentation](/content/docs/~/paths.html)
    - [PState documentation](/content/docs/~/pstates.html)

- ### localClear )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)localClear( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar)

Removes all data from the PState partition on current task. Can only be used with PStates owned by stream topologies.
    Extremely expensive to run for large PState partitions.

Parameters:`pstateVar` \- PState to clearSee Also:

- [Path documentation](/content/docs/~/paths.html)
    - [PState documentation](/content/docs/~/pstates.html)

- ### hashPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)hashPartition( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg)

Changes tasks based on hash of argument modulo number of tasks in module. The same argument
    always hashes to the same task.

Parameters:`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### hashPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)hashPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg)

Changes tasks based on hash of argument modulo number of partitions of given depot or PState.
    The same argument always hashes to the same task.

Parameters:`pobjectVar` \- Depot or PState reference`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### allPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)allPartition()

Executes subsequent code on all tasks in module

See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### allPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)allPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar)

Executes subsequent code on all partitions of given depot or PState

Parameters:`pobjectVar` \- Depot or PState referenceSee Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### globalPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)globalPartition()

Changes to task 0

See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### globalPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)globalPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar)

Changes to partition 0 of given depot or PState. For colocated depots and PStates this will be task 0.

Parameters:`pobjectVar` \- Depot or PState referenceSee Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### shufflePartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)shufflePartition()

Changes to a random task chosen uniformly.

See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### directPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)directPartition( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argTaskId)

Changes to specified task ID

Parameters:`argTaskId` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### directPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)directPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pobjectVar,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argPartitionId)

Changes to specified partition of the given depot or PState

Parameters:`pobjectVar` \- Depot or PState reference`argPartitionId` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)See Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### pathPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)pathPartition( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Changes to task for given PState containing data for given [`Path`](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html)

Parameters:`pstateVar` \- PState reference`path` \- Path definitionSee Also:

- [Partitioners documentation](/content/docs/~/partitioners.html)

- ### originPartition )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)originPartition()

Changes back to starting task for a query topology invocation. Can only be used in query topologies and
    must be final partitioner used.

See Also:

- [Query topology documentation](/content/docs/~/partitioners.html)

- ### agg )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)agg( [Agg](/content/javadoc/com/rpl/rama/Agg.html "interface in com.rpl.rama"/index.html) agg)

Aggregates input in a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)) to a single value.
    Capture output with [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)).

Parameters:`agg` \- Aggregator to useSee Also:

- [Aggregator documentation](/content/docs/~/aggregators.html)
    - [Batch block documentation](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html)

- ### agg )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)agg( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar,
    [Agg](/content/javadoc/com/rpl/rama/Agg.html "interface in com.rpl.rama"/index.html) agg)

Update PState partition on current task with given aggregator. Can be used in batch blocks or regular blocks.

Parameters:`pstateVar` \- PState reference`agg` \- Aggregator to useSee Also:

- [Aggregator documentation](/content/docs/~/aggregators.html)

- ### limitAgg )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)limitAgg( [LimitAgg](/content/javadoc/com/rpl/rama/ops/LimitAgg.html "interface in com.rpl.rama.ops"/index.html) limitAgg)

Limits incoming data to a fixed amount according to optional sort options. Only usable in batch blocks
    and operates during agg and post-agg phases.

Parameters:`limitAgg` \- Definition of aggregatorSee Also:

- [Detailed limitAgg documentation](/content/docs/~/aggregators.html#_limitagg/index.html)
    - [Batch block documentation](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html)

- ### compoundAgg )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)compoundAgg( [CompoundAgg](/content/javadoc/com/rpl/rama/CompoundAgg.html "interface in com.rpl.rama"/index.html) compoundAgg)

Aggregates input in a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)) to a single value.
    Aggregation specified using a data structure template. Capture output with [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)).

Parameters:`compoundAgg` \- Data structure template of aggregationSee Also:

- ### compoundAgg )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)compoundAgg( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar,
    [CompoundAgg](/content/javadoc/com/rpl/rama/CompoundAgg.html "interface in com.rpl.rama"/index.html) compoundAgg)

Update PState partition on current task with given aggregation template. Can be used in batch blocks or regular blocks.

Parameters:`pstateVar` \- PState reference`compoundAgg` \- Data structure template of aggregationSee Also:

- [Aggregator documentation](/content/docs/~/aggregators.html)

- ### batchBlock )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)batchBlock( [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) batchBlock)

Specifies a [batch block](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html). A batch block is partially declarative and supports joins,
    multiple step aggregation, and more. See the extended documentation for details.

Parameters:`batchBlock` \- Body of batch blockSee Also:

- [Batch block documentation](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html)

- ### freshBatchSource )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)freshBatchSource()

See Also:

- [Batch block documentation](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html)

- ### materialize )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)materialize( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... args)

Produces a temporary PState of tuples within a batch block in a microbatch topology. Use subsequent
    [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) call to name the PState.

Parameters:`args` \- Values to capture into tuplesSee Also:

- [Detailed materialize documentation](/content/docs/~/intermediate-dataflow.html#_materialize/index.html)

- ### explodeMaterialized )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)explodeMaterialized( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") pstateVar)

Emits all tuples across all partitions of a temporary PState created from [`materialize(java.lang.Object...)`](/content/javadoc/com/rpl/rama/Block.html#materialize(java.lang.Object.../index.html)).
    Use subsequent [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) call to assign vars to each element of materialized tuples.

Parameters:`pstateVar` \- Temporary PState referenceSee Also:

- [Detailed materialize documentation](/content/docs/~/intermediate-dataflow.html#_materialize/index.html)

- ### explodeMicrobatch )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)explodeMicrobatch( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") microbatchVar)

Emits all data for this microbatch source across all partitions of depot

Parameters:`microbatchVar` \- Var representing microbatch coming from depot sourceSee Also:

- [Microbatch documentation](/content/docs/~/microbatch.html)

- ### invokeQuery )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)invokeQuery( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") queryVarOrTopologyName,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... args)

Invokes a colocated or [mirror query topology](/content/docs/~/module-dependencies.html)

Parameters:`queryVarOrTopologyName` \- Either the name of a query topology in same module or var for another
     module's query topology assigned when calling [`clusterQuery`](/content/javadoc/com/rpl/rama/RamaModule.Setup.html#clusterQuery(java.lang.String,java.lang.String,java.lang.String))`args` \- Arguments to query topologySee Also:

- [Query topology documentation](/content/docs/~/query.html)

- ### depotPartitionAppend )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)depotPartitionAppend( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") depotVar,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg,
    [AckLevel](/content/javadoc/com/rpl/rama/AckLevel.html "enum class in com.rpl.rama"/index.html) ackLevel)

Append data to the partition of the depot represented by current task. Note that this does not use
    the built-in partitioning scheme of the depot. To append to a [mirror depot](/content/docs/~/module-dependencies.html), must
    partition to the mirror depot with a [partitioner](/content/docs/~/partitioners.html).

Parameters:`depotVar` \- Depot reference`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)`ackLevel` \- [`AckLevel`](/content/javadoc/com/rpl/rama/AckLevel.html "enum class in com.rpl.rama"/index.html)See Also:

- [Depot documentation](/content/docs/~/depots.html)
    - [Mirror objects documentation](/content/docs/~/module-dependencies.html)

- ### depotPartitionAppend )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)depotPartitionAppend( [String](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html "class or interface in java.lang") depotVar,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg)

Append data to the partition of the depot represented by current task. Note that this does not use
    the built-in partitioning scheme of the depot. To append to a [mirror depot](/content/docs/~/module-dependencies.html), must
    partition to the mirror depot with a [partitioner](/content/docs/~/partitioners.html). Defaults to AckLevel.APPEND\_ACK.

Parameters:`depotVar` \- Depot reference`arg` \- Value, var, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html)See Also:

- ### subBatch )

static[Block.OutImpl](/content/javadoc/com/rpl/rama/Block.OutImpl.html "interface in com.rpl.rama"/index.html)subBatch( [SubBatch](/content/javadoc/com/rpl/rama/SubBatch.html "class in com.rpl.rama"/index.html) subBatch)

Use specified SubBatch as a batch source in a [`batch block`](/content/javadoc/com/rpl/rama/Block.html#batchBlock(com.rpl.rama.Block)).
    Capture output of SubBatch into vars using subsequent [`out`](/content/javadoc/com/rpl/rama/Block.Out.html#out(java.lang.String.../index.html)) call.

See Also:

- [Batch block documentation](/content/docs/~/intermediate-dataflow.html#_batch_blocks/index.html)

- ### macro )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)macro( [Block](/content/javadoc/com/rpl/rama/Block.html "interface in com.rpl.rama"/index.html) block)

Inserts all code from given Block into the current callsite. This facility allows dataflow code to be
    broken up into reusable chunks.

Parameters:`block` \- Dataflow codeSee Also:

- [Macro documentation](/content/docs/~/intermediate-dataflow.html#_macros/index.html)

- ### subSource )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)subSource( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg,
    [SubSource](/content/javadoc/com/rpl/rama/SubSource.html "interface in com.rpl.rama"/index.html)... subsources)

Conditionally dispatch code based on type of input object

Parameters:`arg` \- Object to dispatch on`subsources` \- Any number of declarations specifying a matching type and dataflow codeSee Also:

- [Detailed subSource documentation](/content/docs/~/intermediate-dataflow.html#_subsource/index.html)

- ### cond )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)cond( [Case](/content/javadoc/com/rpl/rama/Case.html "interface in com.rpl.rama"/index.html)... cases)

Evaluates condition for each [`Case`](/content/javadoc/com/rpl/rama/Case.html "interface in com.rpl.rama"/index.html) in order. Stops checking on first matching condition and evaluates that case's dataflow code. If no condition matches, dataflow stops.

Parameters:`cases` \- Any number of [`Case`](/content/javadoc/com/rpl/rama/Case.html "interface in com.rpl.rama"/index.html) declarations
  - ### yieldIfOvertime )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)yieldIfOvertime()

Yield the task thread if current event is using too much time. Commonly used in loop bodies.

See Also:

- [Detailed yieldifOvertime documentation](/content/docs/~/intermediate-dataflow.html#_yieldifovertime/index.html)

- ### ackReturn )

static[Block.Impl](/content/javadoc/com/rpl/rama/Block.Impl.html "interface in com.rpl.rama"/index.html)ackReturn( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg)

Accumulate value according to depot source options to return with depot appends done with AckLevel.ACK

Parameters:`arg` \- Value to accumulateSee Also:

- [Depot documentation](/content/docs/~/depots.html)
