Class: Accumulable

eclairjs. Accumulable

new Accumulable(initialValue, param)

A data type that can be accumulated, ie has an commutative and associative "add" operation, but where the result type, `R`, may be different from the element type being added, `T`. You must define how to add data, and how to merge two of these together. For some data types, such as a counter, these might be the same operation. In that case, you can use the simpler Accumulator. They won't always be the same, though -- e.g., imagine you are accumulating a set. You will add items to the set, and you will union two sets together.
Parameters:
Name Type Description
initialValue object initial value of accumulator
param module:eclairjs.AccumulableParam helper object defining how to add elements
Source:

Methods

add(term)

Add more data to this accumulator / accumulable
Parameters:
Name Type Description
term object the data to add
Source:

localValue() → {object}

Get the current value of this accumulator from within a task. This is NOT the global value of the accumulator. To get the global value after a completed operation on the dataset, call `value`. The typical use of this method is to directly mutate the local value, eg., to add an element to a Set.
Source:
Returns:
Type
object

merge(term)

Merge two accumulable objects together Normally, a user will not want to use this version, but will instead call `add`.
Parameters:
Name Type Description
term object the other `R` that will get merged with this
Source:

setValue(newValue)

Set the accumulator's value; only allowed on master
Parameters:
Name Type Description
newValue object
Source:

toString() → {string}

Source:
Returns:
Type
string

value() → {object}

Access the accumulator's current value; only allowed on master.
Source:
Returns:
Type
object