Class ColumnRegionChunkDictionary<DICT_TYPE,DATA_TYPE,ATTR extends Any>
java.lang.Object
io.deephaven.engine.table.impl.sources.regioned.GenericColumnRegionBase<ATTR>
io.deephaven.engine.table.impl.sources.regioned.ColumnRegionChunkDictionary<DICT_TYPE,DATA_TYPE,ATTR>
- All Implemented Interfaces:
Page<ATTR>
,Page.WithDefaults<ATTR>
,PagingChunkSource<ATTR>
,ChunkSource<ATTR>
,FillContextMaker
,GetContextMaker
,DefaultChunkSource<ATTR>
,DefaultChunkSource.SupportsContiguousGet<ATTR>
,ColumnRegion<ATTR>
,ColumnRegionObject<DATA_TYPE,
,ATTR> Releasable
public class ColumnRegionChunkDictionary<DICT_TYPE,DATA_TYPE,ATTR extends Any>
extends GenericColumnRegionBase<ATTR>
implements ColumnRegionObject<DATA_TYPE,ATTR>, Page.WithDefaults<ATTR>, DefaultChunkSource.SupportsContiguousGet<ATTR>
ColumnRegionObject
implementation for regions that support fetching symbols from a dictionary represented as
an ObjectChunk
.-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.ChunkSource
ChunkSource.FillContext, ChunkSource.GetContext
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegion
ColumnRegion.Null<ATTR extends Any>
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegionObject
ColumnRegionObject.Constant<DATA_TYPE,
ATTR extends Any>, ColumnRegionObject.DictionaryKeysWrapper, ColumnRegionObject.Null<DATA_TYPE, ATTR extends Any>, ColumnRegionObject.SelfDictionaryRegion<DATA_TYPE, ATTR extends Any>, ColumnRegionObject.StaticPageStore<DATA_TYPE, ATTR extends Any> Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.DefaultChunkSource
DefaultChunkSource.SupportsContiguousGet<ATTR extends Any>, DefaultChunkSource.WithPrev<ATTR extends Any>
Nested classes/interfaces inherited from interface io.deephaven.engine.page.Page
Page.WithDefaults<ATTR extends Any>, Page.WithDefaultsForRepeatingValues<ATTR extends Any>
-
Field Summary
Fields inherited from interface io.deephaven.engine.table.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAY
-
Method Summary
Modifier and TypeMethodDescriptionstatic <DATA_TYPE,
ATTR extends Any>
ColumnRegionObject<DATA_TYPE,ATTR> create
(long pageMask, @NotNull Class<DATA_TYPE> dataType, @NotNull Supplier<Chunk<ATTR>> dictionaryChunkSupplier) void
fillChunkAppend
(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, @NotNull RowSequence rowSequence) Appends the values referenced byorderKeys
ontodestination
.boolean
gatherDictionaryValuesRowSet
(RowSet.SearchIterator keysToVisit, RowSequence.Iterator knownKeys, @NotNull RowSetBuilderSequential sequentialBuilder) Optional method that should only be used on regions returned byColumnRegionObject.getDictionaryValuesRegion()
.getChunk
(@NotNull ChunkSource.GetContext context, long firstKey, long lastKey) Same asChunkSource.getChunk(GetContext, RowSequence)
, except that you pass in the begin and last keys representing the begin and last (inclusive) keys of a single range rather than anRowSequence
.getObject
(long elementIndex) Get a single object from this region.Methods inherited from class io.deephaven.engine.table.impl.sources.regioned.GenericColumnRegionBase
invalidate, mask, throwIfInvalidated
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegion
firstRowOffset, invalidate
Methods inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegionObject
getChunkType, getDictionaryKeysRegion, getDictionaryValuesRegion, getObject, supportsDictionaryFormat
Methods inherited from interface io.deephaven.engine.table.impl.DefaultChunkSource
getChunkByFilling, makeGetContext
Methods inherited from interface io.deephaven.engine.table.impl.DefaultChunkSource.SupportsContiguousGet
getChunk
Methods inherited from interface io.deephaven.engine.table.FillContextMaker
makeFillContext
Methods inherited from interface io.deephaven.engine.table.GetContextMaker
makeGetContext
Methods inherited from interface io.deephaven.engine.page.Page
advanceToNextPage, advanceToNextPage, advanceToNextPageAndGetPositionDistance, firstRow, getRowOffset
Methods inherited from interface io.deephaven.engine.page.Page.WithDefaults
fillChunk, fillChunkAppend
Methods inherited from interface io.deephaven.engine.page.PagingChunkSource
makeFillContext, mask, maxRow
Methods inherited from interface io.deephaven.engine.table.Releasable
releaseCachedResources
-
Method Details
-
create
public static <DATA_TYPE,ATTR extends Any> ColumnRegionObject<DATA_TYPE,ATTR> create(long pageMask, @NotNull @NotNull Class<DATA_TYPE> dataType, @NotNull @NotNull Supplier<Chunk<ATTR>> dictionaryChunkSupplier) -
getObject
Description copied from interface:ColumnRegionObject
Get a single object from this region.- Specified by:
getObject
in interfaceColumnRegionObject<DICT_TYPE,
DATA_TYPE> - Parameters:
elementIndex
- Element row key in the table's address space- Returns:
- The object value at the specified element row key
-
getChunk
public Chunk<? extends ATTR> getChunk(@NotNull @NotNull ChunkSource.GetContext context, long firstKey, long lastKey) Description copied from interface:ChunkSource
Same asChunkSource.getChunk(GetContext, RowSequence)
, except that you pass in the begin and last keys representing the begin and last (inclusive) keys of a single range rather than anRowSequence
. Typically you want to call this only if you don't have anRowSequence
, such as during anRowSequence.forAllRowKeyRanges(LongRangeConsumer)
call. In this case, it allows you to avoid creating an intermediaryRowSequence
object.- Specified by:
getChunk
in interfaceChunkSource<DICT_TYPE>
- Specified by:
getChunk
in interfaceDefaultChunkSource<DICT_TYPE>
- Specified by:
getChunk
in interfaceDefaultChunkSource.SupportsContiguousGet<DICT_TYPE>
- Parameters:
context
- A context containing all mutable/state related data used in retrieving the Chunk. In particular, the Context may be used to provide a Chunk data poolfirstKey
- The beginning key (inclusive) of the range to fetch in the chunklastKey
- The last key (inclusive) of the range to fetch in the chunk
-
fillChunkAppend
public void fillChunkAppend(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super ATTR> destination, @NotNull @NotNull RowSequence rowSequence) Description copied from interface:Page.WithDefaults
Appends the values referenced byorderKeys
ontodestination
.orderKeys
are assumed to be entirely contained on thisPage
.- Specified by:
fillChunkAppend
in interfacePage.WithDefaults<DICT_TYPE>
-
gatherDictionaryValuesRowSet
public boolean gatherDictionaryValuesRowSet(@NotNull RowSet.SearchIterator keysToVisit, @NotNull RowSequence.Iterator knownKeys, @NotNull @NotNull RowSetBuilderSequential sequentialBuilder) Description copied from interface:ColumnRegionObject
Optional method that should only be used on regions returned byColumnRegionObject.getDictionaryValuesRegion()
. Gathers row keys representing the dictionary values for this region, excluding those already known to the caller. This is used to supportsymbol table
access.- Specified by:
gatherDictionaryValuesRowSet
in interfaceColumnRegionObject<DICT_TYPE,
DATA_TYPE> - Parameters:
keysToVisit
- A search iterator over the enclosing table address space (which must have the same regions at the same masks), positioned at a row key in this region. Used to identify regions to visit. Should be advanced to after this region as a side-effect.knownKeys
- An iterator over the previously-known row keys, positioned at the first known key in this region, or after the region's maximum key if no keys are known. Should be advanced to after this region as a side effect.sequentialBuilder
- Output builder; implementations should append ranges for row keys not found inknownKeys
- Returns:
- Whether
keysToVisit
has been exhausted
-