Class BulkingSink<T>

java.lang.Object
org.aksw.commons.util.sink.BulkingSink<T>
Type Parameters:
T -
All Implemented Interfaces:
AutoCloseable, Sink<T>

public class BulkingSink<T> extends Object implements Sink<T>
A sink that collects items in a buffer. Only when the buffer becomes full OR flush is called manually then items are flushed to the delegate in bulk. Closing does not flush pending items! This class is not thread-safe.
Author:
raven
  • Field Details

    • buffer

      protected T[] buffer
    • delegate

      protected BulkConsumer delegate
    • nextOffsetInBuffer

      protected int nextOffsetInBuffer
    • isClosed

      protected boolean isClosed
  • Constructor Details

    • BulkingSink

      public BulkingSink(int bulkSize, BulkConsumer delegate)
  • Method Details

    • ensureOpen

      protected void ensureOpen()
    • create

      public static <T> BulkingSink<T> create(int bulkSize, BulkConsumer delegate)
    • accept

      public void accept(T item)
      Specified by:
      accept in interface Sink<T>
    • flush

      public void flush()
      Specified by:
      flush in interface Sink<T>
    • flushActual

      protected void flushActual()
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Sink<T>