Package com.illumon.iris.db.v2.sources
Class RedirectedColumnSource<T>
java.lang.Object
com.illumon.iris.db.v2.sources.AbstractColumnSource<T>
com.illumon.iris.db.v2.sources.ReadOnlyRedirectedColumnSource<T>
com.illumon.iris.db.v2.sources.RedirectedColumnSource<T>
- All Implemented Interfaces:
ChunkSource<Attributes.Values>,ChunkSource.WithPrev<Attributes.Values>,DefaultChunkSource<Attributes.Values>,DefaultChunkSource.WithPrev<Attributes.Values>,FillContextMaker,GetContextMaker,ColumnSource<T>,ConvertableTimeSource,ElementSource<T>,Releasable,UngroupableColumnSource,WritableChunkSink<Attributes.Values>,WritableSource<T>,TupleExporter<T>,TupleSource<T>,Serializable
public class RedirectedColumnSource<T>
extends ReadOnlyRedirectedColumnSource<T>
implements WritableSource<T>
A
ColumnSource that provides a redirected view into another ColumnSource by mapping keys using a
RedirectionIndex.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
AbstractColumnSource.DefaultedImmutable<DATA_TYPE>, AbstractColumnSource.DefaultedMutable<DATA_TYPE>, AbstractColumnSource.IsSerializableNested 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.ConvertableTimeSource
ConvertableTimeSource.ZonedNested 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.WritableChunkSink
WritableChunkSink.FillFromContext -
Field Summary
Fields inherited from class com.illumon.iris.db.v2.sources.ReadOnlyRedirectedColumnSource
innerSource, redirectionIndexFields inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
componentType, typeFields 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.chunk.ChunkSource.WithPrev
ZERO_LENGTH_CHUNK_SOURCE_WITH_PREV_ARRAYFields inherited from interface com.illumon.iris.db.v2.sources.ColumnSource
ZERO_LENGTH_COLUMN_SOURCE_ARRAYFields inherited from interface com.illumon.iris.db.v2.sources.WritableChunkSink
DEFAULT_FILL_FROM_INSTANCEFields inherited from interface com.illumon.iris.db.v2.sources.WritableSource
ZERO_LENGTH_WRITABLE_SOURCE_ARRAY -
Constructor Summary
ConstructorsConstructorDescriptionRedirectedColumnSource(RedirectionIndex redirectionIndex, ColumnSource<T> innerSource, long maxInnerIndex) Create a type-appropriate RedirectedColumnSource for the suppliedRedirectionIndexand innerColumnSource. -
Method Summary
Modifier and TypeMethodDescriptionvoidcopy(ColumnSource<T> sourceColumn, long sourceKey, long destKey) voidensureCapacity(long capacity) voidfillFromChunk(WritableChunkSink.FillFromContext context, Chunk<? extends Attributes.Values> src, OrderedKeys orderedKeys) Our default, inefficient, implementation.voidfillFromChunkUnordered(WritableChunkSink.FillFromContext context, Chunk<? extends Attributes.Values> src, LongChunk<Attributes.KeyIndices> keys) Fills the ChunkSink with data from the source, with data corresponding to the keys from the given key chunk.makeFillFromContext(int chunkCapacity) Provide a default, emptyWritableChunkSink.FillFromContextfor use with our defaultWritableSource.fillFromChunk(com.illumon.iris.db.v2.sources.WritableChunkSink.FillFromContext, com.illumon.iris.db.v2.sources.chunk.Chunk<? extends com.illumon.iris.db.v2.sources.chunk.Attributes.Values>, com.illumon.iris.db.v2.utils.OrderedKeys).voidset(long key, byte value) voidset(long key, char value) voidset(long key, double value) voidset(long key, float value) voidset(long key, int value) voidset(long key, long value) voidset(long key, short value) voidvoidsetNull(long key) Methods inherited from class com.illumon.iris.db.v2.sources.ReadOnlyRedirectedColumnSource
allowsReinterpret, doReinterpret, fillChunk, fillPrevChunk, get, getBoolean, getByte, getChar, getComponentType, getDouble, getFloat, getInt, getLong, getPrev, getPrevBoolean, getPrevByte, getPrevChar, getPrevDouble, getPrevFloat, getPrevInt, getPrevLong, getPrevShort, getRedirectionIndex, getShort, getUngrouped, getUngroupedBoolean, getUngroupedByte, getUngroupedChar, getUngroupedDouble, getUngroupedFloat, getUngroupedInt, getUngroupedLong, getUngroupedPrev, getUngroupedPrevBoolean, getUngroupedPrevByte, getUngroupedPrevChar, getUngroupedPrevDouble, getUngroupedPrevFloat, getUngroupedPrevInt, getUngroupedPrevLong, getUngroupedPrevShort, getUngroupedPrevSize, getUngroupedShort, getUngroupedSize, isImmutable, isUngroupable, makeFillContext, releaseCachedResources, startTrackingPrevValues, supportsTimeConversion, toDBDateTime, toEpochNano, toInstant, toLocalDate, toLocalTime, toZonedDateTimeMethods inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
canUseGrouping, defaultFillChunk, getGroupingBuilder, getGroupingProvider, getNativeType, getType, hasGrouping, hasGrouping, isSerializable, match, matchWithGrouping, reinterpret, setGroupingProviderMethods 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
fillChunk, getChunkTypeMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource.WithPrev
fillPrevChunkMethods 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, hasGrouping, isImmutable, match, reinterpret, releaseCachedResources, setGroupingProvider, startTrackingPrevValuesMethods 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.DefaultChunkSource.WithPrev
getPrevChunk, getPrevChunk, getPrevChunkByFillingMethods inherited from interface com.illumon.iris.db.v2.sources.ElementSource
get, getBoolean, getByte, getChar, getDouble, getFloat, getInt, getLong, getPrev, getPrevBoolean, getPrevByte, getPrevChar, getPrevDouble, getPrevFloat, getPrevInt, getPrevLong, getPrevShort, getShortMethods 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.tuples.TupleExporter
exportElementReinterpretedMethods inherited from interface com.illumon.iris.db.v2.tuples.TupleSource
createTupleFromReinterpretedValuesMethods inherited from interface com.illumon.iris.db.v2.sources.WritableSource
setNull
-
Constructor Details
-
RedirectedColumnSource
public RedirectedColumnSource(@NotNull RedirectionIndex redirectionIndex, @NotNull ColumnSource<T> innerSource, long maxInnerIndex) Create a type-appropriate RedirectedColumnSource for the suppliedRedirectionIndexand innerColumnSource.- Parameters:
redirectionIndex- The redirection index to useinnerSource- The column source to redirectmaxInnerIndex- The maximum index key available in innerSource
-
-
Method Details
-
set
- Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, byte value) - Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, char value) - Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, double value) - Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, float value) - Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, int value) - Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, long value) - Specified by:
setin interfaceWritableSource<T>
-
set
public void set(long key, short value) - Specified by:
setin interfaceWritableSource<T>
-
setNull
public void setNull(long key) - Specified by:
setNullin interfaceWritableSource<T>
-
copy
- Specified by:
copyin interfaceWritableSource<T>
-
ensureCapacity
public void ensureCapacity(long capacity) - Specified by:
ensureCapacityin interfaceWritableSource<T>
-
makeFillFromContext
Description copied from interface:WritableSourceProvide a default, emptyWritableChunkSink.FillFromContextfor use with our defaultWritableSource.fillFromChunk(com.illumon.iris.db.v2.sources.WritableChunkSink.FillFromContext, com.illumon.iris.db.v2.sources.chunk.Chunk<? extends com.illumon.iris.db.v2.sources.chunk.Attributes.Values>, com.illumon.iris.db.v2.utils.OrderedKeys).- Specified by:
makeFillFromContextin interfaceWritableChunkSink<T>- Specified by:
makeFillFromContextin interfaceWritableSource<T>
-
fillFromChunk
public void fillFromChunk(@NotNull WritableChunkSink.FillFromContext context, @NotNull Chunk<? extends Attributes.Values> src, @NotNull OrderedKeys orderedKeys) Description copied from interface:WritableSourceOur default, inefficient, implementation. Inheritors who care should provide a better implementation.- Specified by:
fillFromChunkin interfaceWritableChunkSink<T>- Specified by:
fillFromChunkin interfaceWritableSource<T>- Parameters:
context- A context containing all mutable/state related data used in writing the Chunk.src- The source of the dataorderedKeysorderedKeys- AnOrderedKeysrepresenting the keys to be written
-
fillFromChunkUnordered
public void fillFromChunkUnordered(@NotNull WritableChunkSink.FillFromContext context, @NotNull Chunk<? extends Attributes.Values> src, @NotNull LongChunk<Attributes.KeyIndices> keys) Description copied from interface:WritableChunkSinkFills the ChunkSink with data from the source, with data corresponding to the keys from the given key chunk.- Specified by:
fillFromChunkUnorderedin interfaceWritableChunkSink<T>- Specified by:
fillFromChunkUnorderedin interfaceWritableSource<T>- Parameters:
context- A context containing all mutable/state related data used in writing the Chunk.src- The source of the dataorderedKeyskeys- ALongChunkrepresenting the keys to be written
-