Class RecordBatch

java.lang.Object
io.camunda.zeebe.engine.api.records.RecordBatch
All Implemented Interfaces:
ImmutableRecordBatch, MutableRecordBatch, Iterable<ImmutableRecordBatchEntry>

public final class RecordBatch extends Object implements MutableRecordBatch
  • Constructor Details

  • Method Details

    • empty

      public static ImmutableRecordBatch empty()
    • appendRecord

      public Either<RuntimeException,Void> appendRecord(long key, int sourceIndex, RecordType recordType, Intent intent, RejectionType rejectionType, String rejectionReason, ValueType valueType, BufferWriter valueWriter)
      Description copied from interface: MutableRecordBatch
      Allows to add a new Record to the batch
      Specified by:
      appendRecord in interface MutableRecordBatch
      Parameters:
      key - the key of the record
      sourceIndex - the position/index in the current batch which caused that entry; should be set to -1 if no entry caused it
      recordType - the type of the record, part of the record metadata, must be set
      intent - the intent of the record, part of the record metadata, must be set
      rejectionType - the rejection type, part of the record metadata, can be set to a NULL_VALUE
      rejectionReason - the rejection reason, part of the record metadata, can be empty
      valueType - the value type, part of the record metadata, must be set
      valueWriter - the actual record value
      Returns:
      either a failure if record can't be added to the batch or null on success
    • canAppendRecordOfLength

      public boolean canAppendRecordOfLength(int recordLength)
      Description copied from interface: MutableRecordBatch
      Allows to verify whether the given record length is suitable to be appended in the current batch. This method is useful if you have one record which will be updated and you don't want to append it right now, just to verify whether it would still fit.
      Specified by:
      canAppendRecordOfLength in interface MutableRecordBatch
      Parameters:
      recordLength - the expected record length, which needs to be verified
      Returns:
      true if the record length would fit into the batch, false otherwise
    • getBatchSize

      public int getBatchSize()
    • iterator

      public Iterator<ImmutableRecordBatchEntry> iterator()
      Specified by:
      iterator in interface Iterable<ImmutableRecordBatchEntry>
    • forEach

      public void forEach(Consumer<? super ImmutableRecordBatchEntry> action)
      Specified by:
      forEach in interface Iterable<ImmutableRecordBatchEntry>
    • spliterator

      public Spliterator<ImmutableRecordBatchEntry> spliterator()
      Specified by:
      spliterator in interface Iterable<ImmutableRecordBatchEntry>