Package org.aksw.commons.util.sink
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 Summary
Fields Modifier and Type Field Description protected T[]bufferprotected BulkConsumerdelegateprotected booleanisClosedprotected intnextOffsetInBuffer
-
Constructor Summary
Constructors Constructor Description BulkingSink(int bulkSize, BulkConsumer delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(T item)voidclose()static <T> BulkingSink<T>create(int bulkSize, BulkConsumer delegate)protected voidensureOpen()voidflush()protected voidflushActual()
-
-
-
Field Detail
-
buffer
protected T[] buffer
-
delegate
protected BulkConsumer delegate
-
nextOffsetInBuffer
protected int nextOffsetInBuffer
-
isClosed
protected boolean isClosed
-
-
Constructor Detail
-
BulkingSink
public BulkingSink(int bulkSize, BulkConsumer delegate)
-
-
Method Detail
-
ensureOpen
protected void ensureOpen()
-
create
public static <T> BulkingSink<T> create(int bulkSize, BulkConsumer delegate)
-
flushActual
protected void flushActual()
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSink<T>
-
-