Class RegionedColumnSourceObject<T,ATTR extends Attributes.Values>
java.lang.Object
com.illumon.iris.db.v2.sources.AbstractColumnSource<DATA_TYPE>
com.illumon.iris.db.v2.sources.regioned.RegionedColumnSourceObject<T,ATTR>
- All Implemented Interfaces:
LongSizedDataStructure
,ChunkSource<Attributes.Values>
,ChunkSource.WithPrev<Attributes.Values>
,DefaultChunkSource<Attributes.Values>
,DefaultChunkSource.SupportsContiguousGet<Attributes.Values>
,DefaultChunkSource.WithPrev<Attributes.Values>
,FillContextMaker
,GetContextMaker
,PageStore<Attributes.Values,ATTR,ColumnRegionObject<T,ATTR>>
,PagingChunkSource<Attributes.Values>
,ColumnSource<T>
,ColumnSourceGetDefaults.ForObject<T>
,ElementSource<T>
,ImmutableColumnSource<T>
,MakeRegion<ATTR,ColumnRegionObject<T,ATTR>>
,RegionedColumnSource<T>
,RegionedPageStore<Attributes.Values,ATTR,ColumnRegionObject<T,ATTR>>
,Releasable
,SizedColumnSource<T>
,TupleExporter<T>
,TupleSource<T>
,Serializable
- Direct Known Subclasses:
RegionedColumnSourceObject.AsValues
public abstract class RegionedColumnSourceObject<T,ATTR extends Attributes.Values> extends AbstractColumnSource<DATA_TYPE> implements ColumnSourceGetDefaults.ForObject<T>
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RegionedColumnSourceObject.AsValues<T,D>
static class
RegionedColumnSourceObject.FillContext
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
AbstractColumnSource.DefaultedImmutable<DATA_TYPE>, AbstractColumnSource.DefaultedMutable<DATA_TYPE>, AbstractColumnSource.IsSerializable
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
ChunkSource.GetContext, ChunkSource.WithPrev<ATTR extends Attributes.Any>
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource
DefaultChunkSource.SupportsContiguousGet<ATTR extends Attributes.Any>, DefaultChunkSource.WithPrev<ATTR extends Attributes.Any>
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedPageStore
RegionedPageStore.Helper, RegionedPageStore.Static<ATTR extends Attributes.Any,INNER_ATTR extends ATTR,REGION_TYPE extends Page<INNER_ATTR>>
-
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAY
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource.WithPrev
ZERO_LENGTH_CHUNK_SOURCE_WITH_PREV_ARRAY
Fields inherited from interface com.illumon.iris.db.v2.sources.ColumnSource
ZERO_LENGTH_COLUMN_SOURCE_ARRAY
Fields inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedColumnSource
ELEMENT_INDEX_TO_SUB_REGION_ELEMENT_INDEX_MASK, MAXIMUM_REGION_COUNT, REGION_CAPACITY_IN_ELEMENTS, REGION_INDEX_ADDRESS_BITS, SUB_REGION_ELEMENT_INDEX_ADDRESS_BITS
Fields inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedPageStore
REGION_MASK, REGION_MASK_NUM_BITS
-
Method Summary
Modifier and Type Method Description int
addRegion(com.illumon.dataobjects.ColumnDefinition<?> columnDefinition, ColumnLocation<?> columnLocation)
Add a region to this regioned column source.void
fillChunk(ChunkSource.FillContext context, WritableChunk<? super Attributes.Values> destination, OrderedKeys orderedKeys)
Use the more efficient fill chunk implementation, rather than the default which uses get().void
fillPrevChunk(ChunkSource.FillContext context, WritableChunk<? super Attributes.Values> destination, OrderedKeys orderedKeys)
We are immutable, so stick with the efficient fill chunk even when getting prev.REGION_TYPE
getNullRegion()
REGION_TYPE
getRegion(int regionIndex)
Map from a region index to its corresponding region.int
getRegionCount()
Get the number of regions.void
releaseCachedResources()
Release any resources held for caching purposes.Methods inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
allowsReinterpret, defaultFillChunk, doReinterpret, getComponentType, getGroupingBuilder, getGroupingProvider, getNativeType, getType, hasGrouping, isSerializable, match, reinterpret, setGroupingProvider
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.ChunkSource.WithPrev
fillPrevChunk
Methods inherited from interface com.illumon.iris.db.v2.sources.ColumnSource
allowsReinterpret, cast, createPreviousTuple, createTuple, createTupleFromValues, exportElement, exportElement, exportToExternalKey, getColumnSources, getComponentType, getGroupingBuilder, getGroupingProvider, getNativeType, getPrevSource, getType, hasGrouping, match, reinterpret, releaseCachedResources, setGroupingProvider, startTrackingPrevValues
Methods inherited from interface com.illumon.iris.db.v2.sources.ColumnSourceGetDefaults.ForObject
getBoolean, getByte, getChar, getDouble, getFloat, getInt, getLong, getShort
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource
getChunkByFilling, makeGetContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource.WithPrev
getPrevChunk, getPrevChunk, getPrevChunkByFilling
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.FillContextMaker
makeFillContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.GetContextMaker
makeGetContext
Methods inherited from interface com.illumon.iris.db.v2.sources.ImmutableColumnSource
getPrev, getPrevBoolean, getPrevByte, getPrevChar, getPrevDouble, getPrevFloat, getPrevInt, getPrevLong, getPrevShort, isImmutable
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.PageStore
doFillChunkAppend, fillChunkAppend, getChunk, getChunk
Methods inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedPageStore
getPageContaining, lookupRegion, makeFillContext, mask, size
Methods inherited from interface com.illumon.iris.db.v2.tuples.TupleExporter
exportElementReinterpreted
Methods inherited from interface com.illumon.iris.db.v2.tuples.TupleSource
createTupleFromReinterpretedValues
-
Method Details
-
addRegion
@OverridingMethodsMustInvokeSuper public int addRegion(@NotNull com.illumon.dataobjects.ColumnDefinition<?> columnDefinition, @NotNull ColumnLocation<?> columnLocation)Description copied from interface:RegionedColumnSource
Add a region to this regioned column source. Elements in this region are ordered after elements in other regions added previously.- Specified by:
addRegion
in interfaceRegionedColumnSource<DATA_TYPE>
- Parameters:
columnDefinition
- The column definition for this column source (potentially varies by region)columnLocation
- The column location for the region being added- Returns:
- The index assigned to the added region
-
getRegionCount
public final int getRegionCount()Description copied from interface:RegionedPageStore
Get the number of regions.- Specified by:
getRegionCount
in interfaceRegionedPageStore<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
- Returns:
- The number of regions that have been added
-
getRegion
public REGION_TYPE getRegion(int regionIndex)Description copied from interface:RegionedPageStore
Map from a region index to its corresponding region.- Specified by:
getRegion
in interfaceRegionedPageStore<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
- Parameters:
regionIndex
- The region index- Returns:
- The region for the supplied region index
-
releaseCachedResources
@OverridingMethodsMustInvokeSuper public void releaseCachedResources()Description copied from interface:ColumnSource
Release any resources held for caching purposes. Implementations need not guarantee that concurrent accesses are correct, as the purpose of this method is to ensure cleanup for column sources that will no longer be used.- Specified by:
releaseCachedResources
in interfaceColumnSource<DATA_TYPE>
- Specified by:
releaseCachedResources
in interfaceReleasable
-
getNullRegion
@NotNull public final REGION_TYPE getNullRegion() -
fillChunk
public void fillChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Attributes.Values> destination, @NotNull OrderedKeys orderedKeys)Use the more efficient fill chunk implementation, rather than the default which uses get().- Specified by:
fillChunk
in interfaceChunkSource<DATA_TYPE>
- Specified by:
fillChunk
in interfacePageStore<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
- Overrides:
fillChunk
in classAbstractColumnSource<DATA_TYPE>
- Parameters:
context
- A context containing all mutable/state related data used in retrieving the Chunk.destination
- The chunk to be populated according toorderedKeys
. No assumptions shall be made about the size of the chunk shall be made. The chunk will be populated from position [0,orderedKeys.size()).orderedKeys
- AnOrderedKeys
representing the keys to be fetched
-
fillPrevChunk
public void fillPrevChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Attributes.Values> destination, @NotNull OrderedKeys orderedKeys)We are immutable, so stick with the efficient fill chunk even when getting prev.- Specified by:
fillPrevChunk
in interfaceChunkSource.WithPrev<DATA_TYPE>
- Overrides:
fillPrevChunk
in classAbstractColumnSource<DATA_TYPE>
- Parameters:
context
- A context containing all mutable/state related data used in retrieving the Chunk.destination
- The chunk to be populated according toorderedKeys
. No assumptions shall be made about the size of the chunk shall be made. The chunk will be populated from position [0,orderedKeys.size()).orderedKeys
- AnOrderedKeys
representing the keys to be fetched
-