Class WritableObjectChunk<T,ATTR extends Attributes.Any>
java.lang.Object
com.illumon.iris.db.v2.sources.chunk.ChunkBase<ATTR>
com.illumon.iris.db.v2.sources.chunk.ObjectChunk<T,ATTR>
com.illumon.iris.db.v2.sources.chunk.WritableObjectChunk<T,ATTR>
- All Implemented Interfaces:
Chunk<ATTR>
,PoolableChunk
,WritableChunk<ATTR>
,SafeCloseable
,AutoCloseable
- Direct Known Subclasses:
ResettableWritableObjectChunk
public class WritableObjectChunk<T,ATTR extends Attributes.Any>
extends ObjectChunk<T,ATTR>
implements WritableChunk<ATTR>
WritableChunk
implementation for Object data.-
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.Chunk
MAXIMUM_SIZE, SYSTEM_ARRAYCOPY_THRESHOLD, SYSTEM_ARRAYFILL_THRESHOLD
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
Add the specified value to the chunk.final void
appendTypedChunk
(ObjectChunk<T, ? extends ATTR> src, int srcOffset, int length) <T_DERIV extends T>
WritableObjectChunk<T_DERIV,ATTR> void
close()
final void
copyFromArray
(Object srcArray, int srcOffset, int destOffset, int length) final void
copyFromChunk
(Chunk<? extends ATTR> src, int srcOffset, int destOffset, int length) final void
copyFromTypedArray
(T[] src, int srcOffset, int destOffset, int length) final void
copyFromTypedChunk
(ObjectChunk<T, ? extends ATTR> src, int srcOffset, int destOffset, int length) static <T,
ATTR extends Attributes.Any, ATTR_DERIV extends ATTR>
WritableObjectChunk<T,ATTR_DERIV> downcast
(WritableObjectChunk<T, ATTR> self) final void
fillWithBoxedValue
(int offset, int size, Object value) Fill a sub-range of this writable chunk with the given value, unboxing it as appropriate.final void
fillWithNullValue
(int offset, int length) Fill a sub-range of this writable chunk with the appropriate Deephaven null value for the type.final void
fillWithValue
(int offset, int length, T value) final ChunkFiller
Our ChunkFiller "plugin".static <T,
ATTR extends Attributes.Any>
WritableObjectChunk<T,ATTR> makeWritableChunk
(int size) Retrieve aWritableObjectChunk
of the specified size.static <T,
ATTR extends Attributes.Any>
WritableObjectChunk<T,ATTR> makeWritableChunkForPool
(int size) Create aWritableObjectChunk
of the specified size.final void
slice
(int offset, int capacity) Make a new Chunk that represents either exactly the same view on the underlying data as this Chunk, or a subrange of that view.final void
sort()
Sort this chunk in-place using Java's primitive defined ordering.final void
sort
(int start, int length) Sort this chunk in-place using Java's primitive defined ordering.static <T,
ATTR extends Attributes.Any, ATTR_DERIV extends ATTR>
WritableObjectChunk<T,ATTR> upcast
(WritableObjectChunk<T, ATTR_DERIV> self) static <T,
ATTR extends Attributes.Any>
WritableObjectChunk<T,ATTR> writableChunkWrap
(T[] data) Wrap the specified array in aWritableObjectChunk
.static <T,
ATTR extends Attributes.Any>
WritableObjectChunk<T,ATTR> writableChunkWrap
(T[] data, int offset, int size) Wrap the specified array in aWritableObjectChunk
.Methods inherited from class com.illumon.iris.db.v2.sources.chunk.ObjectChunk
asTypedObjectChunk, chunkWrap, chunkWrap, copyToArray, copyToChunk, copyToTypedArray, get, getChunkType, getEmptyChunk, isAlias, isAlias, makeArray
Methods inherited from class com.illumon.iris.db.v2.sources.chunk.ChunkBase
internalCapacity, internalSetSize, size
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.Chunk
asBooleanChunk, asByteChunk, asCharChunk, asDoubleChunk, asFloatChunk, asIntChunk, asLongChunk, asObjectChunk, asShortChunk, copyToArray, copyToBuffer, copyToChunk, getChunkType, isAlias, isAlias, size
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.WritableChunk
asWritableBooleanChunk, asWritableByteChunk, asWritableCharChunk, asWritableDoubleChunk, asWritableFloatChunk, asWritableIntChunk, asWritableLongChunk, asWritableObjectChunk, asWritableShortChunk, capacity, copyFromBuffer, internalCapacity, internalSetSize, setSize
-
Method Details
-
makeWritableChunk
public static <T,ATTR extends Attributes.Any> WritableObjectChunk<T,ATTR> makeWritableChunk(int size) Retrieve aWritableObjectChunk
of the specified size.Note that the returned chunk may have a larger capacity than requested, and its size will be set to
size
.Users must take care to
close()
the chunk when finished.- Parameters:
size
- the desired size of the chunk.- Returns:
- A
WritableObjectChunk
of the requested size.
-
makeWritableChunkForPool
public static <T,ATTR extends Attributes.Any> WritableObjectChunk<T,ATTR> makeWritableChunkForPool(int size) Create aWritableObjectChunk
of the specified size. The returned chunk will have exactly the requested capacity, and its size will be set tosize
.- Parameters:
size
- the desired size of the chunk.- Returns:
- A
WritableObjectChunk
of the requested size.
-
writableChunkWrap
public static <T,ATTR extends Attributes.Any> WritableObjectChunk<T,ATTR> writableChunkWrap(@NotNull T[] data) Wrap the specified array in aWritableObjectChunk
. TheChunkBase.size()
will be initialized to thedata
length.- Parameters:
data
- the array to wrap- Returns:
- A new
WritableObjectChunk
backed by the specified array.
-
writableChunkWrap
public static <T,ATTR extends Attributes.Any> WritableObjectChunk<T,ATTR> writableChunkWrap(@NotNull T[] data, int offset, int size) Wrap the specified array in aWritableObjectChunk
.- Parameters:
data
- the array to wrap- Returns:
- A new
WritableObjectChunk
backed by the specified array.
-
set
-
add
Add the specified value to the chunk. The value will be added at the positionChunkBase.size()
, and theChunkBase.size()
will be incremented.- Parameters:
value
- the value to add
-
slice
Description copied from interface:Chunk
Make a new Chunk that represents either exactly the same view on the underlying data as this Chunk, or a subrange of that view. The view is defined as [0..size) (in the coordinate space of this Chunk).- Specified by:
slice
in interfaceChunk<T>
- Specified by:
slice
in interfaceWritableChunk<T>
- Overrides:
slice
in classObjectChunk<T,
ATTR extends Attributes.Any> - Parameters:
offset
- Offset of the new Chunk, relative to this Chunk. 0 ≤ offset ≤ this.sizecapacity
- Capacity and initial size of the new Chunk. 0 ≤ capacity ≤ this.size -offset
.- Returns:
- The new Chunk. A new Chunk will always be returned, even if the Chunks represent the same view.
-
fillWithNullValue
public final void fillWithNullValue(int offset, int length) Description copied from interface:WritableChunk
Fill a sub-range of this writable chunk with the appropriate Deephaven null value for the type.- Specified by:
fillWithNullValue
in interfaceWritableChunk<T>
- Parameters:
offset
- Starting offsetlength
- Number of values to fill
-
fillWithBoxedValue
Description copied from interface:WritableChunk
Fill a sub-range of this writable chunk with the given value, unboxing it as appropriate.- Specified by:
fillWithBoxedValue
in interfaceWritableChunk<T>
- Parameters:
offset
- Starting offsetsize
- Number of values to fill
-
fillWithValue
-
appendTypedChunk
-
copyFromChunk
public final void copyFromChunk(Chunk<? extends ATTR> src, int srcOffset, int destOffset, int length) - Specified by:
copyFromChunk
in interfaceWritableChunk<T>
-
copyFromTypedChunk
public final void copyFromTypedChunk(ObjectChunk<T, ? extends ATTR> src, int srcOffset, int destOffset, int length) -
copyFromArray
- Specified by:
copyFromArray
in interfaceWritableChunk<T>
-
copyFromTypedArray
-
getChunkFiller
Description copied from interface:WritableChunk
Our ChunkFiller "plugin".- Specified by:
getChunkFiller
in interfaceWritableChunk<T>
-
sort
public final void sort()Description copied from interface:WritableChunk
Sort this chunk in-place using Java's primitive defined ordering. Of note is that nulls or NaNs are not sorted according to Deephaven ordering rules.- Specified by:
sort
in interfaceWritableChunk<T>
-
sort
public final void sort(int start, int length) Description copied from interface:WritableChunk
Sort this chunk in-place using Java's primitive defined ordering. Of note is that nulls or NaNs are not sorted according to Deephaven ordering rules.- Specified by:
sort
in interfaceWritableChunk<T>
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceSafeCloseable
-
asTypedWritableObjectChunk
-
upcast
public static <T,ATTR extends Attributes.Any, WritableObjectChunk<T,ATTR_DERIV extends ATTR> ATTR> upcast(WritableObjectChunk<T, ATTR_DERIV> self) -
downcast
public static <T,ATTR extends Attributes.Any, WritableObjectChunk<T,ATTR_DERIV extends ATTR> ATTR_DERIV> downcast(WritableObjectChunk<T, ATTR> self)
-