Class UpdateByOperator.Context

java.lang.Object
io.deephaven.engine.table.impl.updateby.UpdateByOperator.Context
All Implemented Interfaces:
SafeCloseable, AutoCloseable
Direct Known Subclasses:
BaseByteUpdateByOperator.Context, BaseCharUpdateByOperator.Context, BaseDoubleUpdateByOperator.Context, BaseFloatUpdateByOperator.Context, BaseIntUpdateByOperator.Context, BaseLongUpdateByOperator.Context, BaseObjectUpdateByOperator.Context, BaseShortUpdateByOperator.Context, BooleanRollingFormulaOperator.Context, ByteRollingFormulaOperator.Context, CharRollingFormulaOperator.Context, DoubleRollingFormulaOperator.Context, FloatRollingFormulaOperator.Context, IntRollingFormulaOperator.Context, LongRollingFormulaOperator.Context, ObjectRollingFormulaOperator.Context, RollingGroupOperator.Context, ShortRollingFormulaOperator.Context
Enclosing class:
UpdateByOperator

public abstract static class UpdateByOperator.Context extends Object implements SafeCloseable
A context item for use with updateBy operators
  • Field Details

  • Constructor Details

    • Context

      public Context()
  • Method Details

    • isValueValid

      public boolean isValueValid(long atKey)
    • setValueChunks

      protected abstract void setValueChunks(@NotNull @NotNull Chunk<? extends Values>[] valueChunks)
    • setPosChunks

      protected void setPosChunks(LongChunk<OrderedRowKeys> affectedPosChunk, LongChunk<OrderedRowKeys> influencerPosChunk)
    • push

      protected abstract void push(int pos, int count)
      Add values to the operators current data set
      Parameters:
      pos - the index in the associated chunk where this value can be found. Depending on the usage, might be a values chunk (for cumulative operators) or an influencer values chunk (for windowed). It is the task of the operator to pull the data from the chunk and use it properly
      count - the number of items to push from the chunk
    • pop

      protected void pop(int count)
      Remove values from the operators current data set. This is only valid for windowed operators as cumulative operators only append values
      Parameters:
      count - the number of items to pop from the data set
    • accumulateCumulative

      public abstract void accumulateCumulative(RowSequence inputKeys, Chunk<? extends Values>[] valueChunkArr, LongChunk<? extends Values> tsChunk, int len)
      For cumulative operators only, this method will be called to pass the input chunk data to the operator and produce the output data values.
      Parameters:
      inputKeys - the keys for the input data rows (also matches the output keys)
      valueChunkArr - the input data chunks needed by the operator for internal calculations
      tsChunk - the timestamp chunk for the input data (if applicable)
      len - the number of items in the input data chunks
    • accumulateRolling

      public abstract void accumulateRolling(RowSequence inputKeys, Chunk<? extends Values>[] influencerValueChunkArr, LongChunk<OrderedRowKeys> affectedPosChunk, LongChunk<OrderedRowKeys> influencerPosChunk, IntChunk<? extends Values> pushChunk, IntChunk<? extends Values> popChunk, int affectedCount, int influencerCount)
      For windowed operators only, this method will be called to pass the input chunk data to the operator and produce the output data values. It is important to note that the size of the influencer (input) and affected (output) chunks are not likely be the same. We pass these sizes explicitly to the operators for the sake of the operators (such as CountWhereOperator with zero input columns) where no input chunks are provided but we must still process the exact number of input rows.
      Parameters:
      inputKeys - the keys for the input data rows (also matches the output keys)
      influencerValueChunkArr - the input data chunks needed by the operator for internal calculations, these values will be pushed and popped into the current window
      affectedPosChunk - the row positions of the affected rows
      influencerPosChunk - the row positions of the influencer rows
      pushChunk - a chunk containing the push instructions for each output row to be calculated
      popChunk - a chunk containing the pop instructions for each output row to be calculated
      affectedCount - how many affected (output) rows are being computed
      influencerCount - how many influencer (input) rows are needed for the computation
    • writeToOutputChunk

      protected abstract void writeToOutputChunk(int outIdx)
      Write the current value for this row to the output chunk
    • writeToOutputColumn

      protected abstract void writeToOutputColumn(@NotNull @NotNull RowSequence inputKeys)
      Write the output chunk to the output column
    • reset

      @OverridingMethodsMustInvokeSuper protected abstract void reset()
      Reset the operator data values to a known state. This may occur during initialization or when a windowed operator has an empty window