Class ColumnRegionObjectCached<T,ATTR extends Attributes.Values,OFFSET_LOOKUP_CACHE extends OffsetLookupCache<T,ChunkSource.FillContext>>
java.lang.Object
com.illumon.iris.db.v2.sources.regioned.ColumnRegionObjectCached<T,ATTR,OFFSET_LOOKUP_CACHE>
- All Implemented Interfaces:
ChunkSource<ATTR>,DefaultChunkSource<ATTR>,FillContextMaker,GetContextMaker,Page<ATTR>,Page.WithDefaults<ATTR>,PagingChunkSource<ATTR>,ColumnRegion<ATTR>,ColumnRegionObject<T,,ATTR> Releasable,OffsetLookup<T,ChunkSource.FillContext>
public final class ColumnRegionObjectCached<T,ATTR extends Attributes.Values,OFFSET_LOOKUP_CACHE extends OffsetLookupCache<T,ChunkSource.FillContext>>
extends Object
implements ColumnRegionObject<T,ATTR>, OffsetLookup<T,ChunkSource.FillContext>, Page.WithDefaults<ATTR>
Column region interface for regions that support fetching objects.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceColumnRegionObjectCached.CacheFactory<T,OFFSET_LOOKUP_CACHE extends OffsetLookupCache<T, ChunkSource.FillContext>> Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
ChunkSource.FillContext, ChunkSource.GetContext, ChunkSource.WithPrev<ATTR extends Attributes.Any>Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.regioned.ColumnRegionObject
ColumnRegionObject.DictionaryKeysWrapper, ColumnRegionObject.IntDictionaryKeysWrapper, ColumnRegionObject.Null<T,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.chunk.page.Page
Page.WithDefaults<ATTR extends Attributes.Any>, Page.WithDefaultsForRepeatingValues<ATTR extends Attributes.Any> -
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAYFields inherited from interface com.illumon.iris.db.v2.sources.regioned.ColumnRegion
REGION_MASK -
Constructor Summary
ConstructorsConstructorDescriptionColumnRegionObjectCached(ColumnRegionObjectCached.CacheFactory<T, OFFSET_LOOKUP_CACHE> cacheFactory, FillContextMaker fillContextMaker, ColumnRegionObject<T, ATTR> innerRegion) -
Method Summary
Modifier and TypeMethodDescriptionbinSearchMatch(long firstKey, long lastKey, SortPair sortPair, Object[] keys) Given that this column is sorted, match the input keys using a binary search.chunkMatch(long regionFirstKey, OrderedKeys keysToFilter, boolean caseInsensitive, boolean invertMatch, Object[] keys) booleancouldInclude(Object[] keys) Check if the region could possibly include any of the keys we're searching forvoidfillChunkAppend(ChunkSource.FillContext context, WritableChunk<? super ATTR> destination, OrderedKeys orderedKeys) Appends the values referenced byorderKeysontodestination.getCache()Get a view of this region as long dictionary keys.Get a view of this region as int dictionary keys.Get a view of this region as dictionary values.Class<?>getObject(long elementIndex) Get a single object from this region.getObject(ChunkSource.FillContext context, long elementIndex) Get a single object from this region.longlength()lookup(long offset, ChunkSource.FillContext fillContext) voidRelease any resources held for caching purposes.Get a version of this region that skips all internal value caching.supportsDictionaryFormat(ReadOnlyIndex.SearchIterator keysToVisit) Check if this region can expose an alternate form as paired regions oflongkeys andDATA_TYPEvalues covering all of its row keys inkeysToVisit.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
getChunkTypeMethods inherited from interface com.illumon.iris.db.v2.sources.regioned.ColumnRegion
firstRowOffset, mask, specialMatch, supportsSpecialMatchingMethods inherited from interface com.illumon.iris.db.v2.sources.regioned.ColumnRegionObject
gatherDictionaryValuesRowSetMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource
getChunk, getChunk, getChunkByFilling, makeFillContext, makeGetContextMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.FillContextMaker
makeFillContextMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.GetContextMaker
makeGetContextMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.Page
advanceToNextPage, advanceToNextPage, advanceToNextPageAndGetPositionDistance, firstRow, getRowOffset, lastRowMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.Page.WithDefaults
fillChunk, fillChunkAppendMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.PagingChunkSource
maxRow
-
Constructor Details
-
ColumnRegionObjectCached
public ColumnRegionObjectCached(@NotNull ColumnRegionObjectCached.CacheFactory<T, OFFSET_LOOKUP_CACHE> cacheFactory, @Nullable FillContextMaker fillContextMaker, @NotNull ColumnRegionObject<T, ATTR> innerRegion)
-
-
Method Details
-
getCache
-
getObject
Description copied from interface:ColumnRegionObjectGet a single object from this region.- Specified by:
getObjectin interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Parameters:
context- AColumnRegionFillContextto enable resource caching where suitable, with current region index pointing to this regionelementIndex- Element (object) index in the table's address space- Returns:
- The object value at the specified element (object) index
-
getObject
Description copied from interface:ColumnRegionObjectGet a single object from this region.- Specified by:
getObjectin interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Parameters:
elementIndex- Element (object) index in the table's address space- Returns:
- The object value at the specified element (object) index
-
length
public long length() -
getNativeType
- Specified by:
getNativeTypein interfaceChunkSource<T>- Specified by:
getNativeTypein interfaceColumnRegionObject<T,ATTR extends Attributes.Values>
-
skipCache
Description copied from interface:ColumnRegionObjectGet a version of this region that skips all internal value caching.- Specified by:
skipCachein interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Returns:
- a view of this region that ignores any value caching.
-
fillChunkAppend
public void fillChunkAppend(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, @NotNull OrderedKeys orderedKeys) Description copied from interface:Page.WithDefaultsAppends the values referenced byorderKeysontodestination.orderKeysare assumed to be entirely contained on thisPage.- Specified by:
fillChunkAppendin interfacePage.WithDefaults<T>
-
releaseCachedResources
@OverridingMethodsMustInvokeSuper public void releaseCachedResources()Description copied from interface:ReleasableRelease any resources held for caching purposes. Implementations need not guarantee that they are safe for normal use concurrently with invocations of this method.- Specified by:
releaseCachedResourcesin interfaceReleasable
-
lookup
- Specified by:
lookupin interfaceOffsetLookup<T,ATTR extends Attributes.Values>
-
getDictionaryValuesRegion
Description copied from interface:ColumnRegionObjectGet a view of this region as dictionary values.- Specified by:
getDictionaryValuesRegionin interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Returns:
- A dictionary values region as specified by
ColumnRegionObject.supportsDictionaryFormat(Index.SearchIterator)
-
getDictionaryKeysRegionInt
Description copied from interface:ColumnRegionObjectGet a view of this region as int dictionary keys.- Specified by:
getDictionaryKeysRegionIntin interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Returns:
- A dictionary keys region as specified by
ColumnRegionObject.supportsDictionaryFormat(Index.SearchIterator)
-
getDictionaryKeysRegion
Description copied from interface:ColumnRegionObjectGet a view of this region as long dictionary keys.- Specified by:
getDictionaryKeysRegionin interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Returns:
- A dictionary keys region as specified by
ColumnRegionObject.supportsDictionaryFormat(Index.SearchIterator)
-
getDictionaryRegionType
- Specified by:
getDictionaryRegionTypein interfaceColumnRegionObject<T,ATTR extends Attributes.Values>
-
supportsDictionaryFormat
public RegionVisitResult supportsDictionaryFormat(@NotNull ReadOnlyIndex.SearchIterator keysToVisit) Description copied from interface:ColumnRegionObjectCheck if this region can expose an alternate form as paired regions oflongkeys andDATA_TYPEvalues covering all of its row keys inkeysToVisit.Both alternate regions must use the same or smaller row key space as this one. Indices fetched from the keys region must represent valid element indices in the values region. Values regions must support
ColumnRegionObject.gatherDictionaryValuesRowSet(Index.SearchIterator, Index.Iterator, Index.SequentialBuilder).Use
ColumnRegionObject.getDictionaryKeysRegion()to access the region of keys andColumnRegionObject.getDictionaryValuesRegion()to access the region of values.- Specified by:
supportsDictionaryFormatin interfaceColumnRegionObject<T,ATTR extends Attributes.Values> - Parameters:
keysToVisit- Iterator positioned at the first relevant row key belonging to this region. Will be advanced to after this region iftrueis returned. No guarantee is made iffalseis returned.- Returns:
- A
RegionVisitResultspecifyingFAILEDif this region cannot supply a dictionary,CONTINUEif it can andkeysToVisitis not exhausted, andCOMPLETEif it can andkeysToVisitis exhausted
-
getLocation
- Specified by:
getLocationin interfaceColumnRegion<T>
-
binSearchMatch
public Index binSearchMatch(long firstKey, long lastKey, @NotNull SortPair sortPair, @NotNull Object[] keys) Description copied from interface:ColumnRegionGiven that this column is sorted, match the input keys using a binary search.- Specified by:
binSearchMatchin interfaceColumnRegion<T>- Parameters:
firstKey- The first key to searchlastKey- The last key to searchsortPair- the sorting definitionkeys- the keys to search for, in no particular order
-
couldInclude
Description copied from interface:ColumnRegionCheck if the region could possibly include any of the keys we're searching for- Specified by:
couldIncludein interfaceColumnRegion<T>- Parameters:
keys- the keys to search for- Returns:
- true if the region possibly contains the values
-
chunkMatch
public Index chunkMatch(long regionFirstKey, @NotNull OrderedKeys keysToFilter, boolean caseInsensitive, boolean invertMatch, @NotNull Object[] keys) - Specified by:
chunkMatchin interfaceColumnRegion<T>
-