Class AbstractColumnSource<T>

java.lang.Object
io.deephaven.engine.table.impl.AbstractColumnSource<T>
All Implemented Interfaces:
ChunkSource<Values>, ChunkSource.WithPrev<Values>, ColumnSource<T>, ElementSource<T>, FillContextMaker, GetContextMaker, DefaultChunkSource<Values>, DefaultChunkSource.WithPrev<Values>, Releasable, TupleExporter<T>, TupleSource<T>
Direct Known Subclasses:
AbstractArrowColumnSource, AbstractColumnSource.DefaultedImmutable, AbstractColumnSource.DefaultedMutable, AlternatingColumnSource, ArrayBackedColumnSource, BaseAggregateSlicedColumnSource, BitMaskingColumnSource, BitShiftingColumnSource, BooleanAsByteColumnSource, BooleanSparseArraySource.ReinterpretedAsByte, ByteAggregateColumnSource, ByteAsBooleanColumnSource, ByteChunkColumnSource, ByteSsmBackedSource, CharAggregateColumnSource, CharChunkColumnSource, CharSsmBackedSource, CrossJoinRightColumnSource, DelegatingColumnSource, DeltaAwareColumnSource, DoubleAggregateColumnSource, DoubleChunkColumnSource, DoubleNullToZeroColumnSource, DoubleSsmBackedSource, FloatAggregateColumnSource, FloatChunkColumnSource, FloatSsmBackedSource, HashTableColumnSource, Immutable2DByteArraySource, Immutable2DCharArraySource, Immutable2DDoubleArraySource, Immutable2DFloatArraySource, Immutable2DIntArraySource, Immutable2DLongArraySource, Immutable2DNanosBasedTimeArraySource, Immutable2DObjectArraySource, Immutable2DShortArraySource, ImmutableByteArraySource, ImmutableCharArraySource, ImmutableConstantByteSource, ImmutableConstantCharSource, ImmutableConstantDoubleSource, ImmutableConstantFloatSource, ImmutableConstantIntSource, ImmutableConstantLongSource, ImmutableConstantNanosBasedTimeSource, ImmutableConstantObjectSource, ImmutableConstantShortSource, ImmutableDoubleArraySource, ImmutableFloatArraySource, ImmutableIntArraySource, ImmutableLongArraySource, ImmutableNanosBasedTimeArraySource, ImmutableObjectArraySource, ImmutableShortArraySource, InstantSsmSourceWrapper, IntAggregateColumnSource, IntChunkColumnSource, IntSsmBackedSource, LocalDateWrapperSource, LocalTimeWrapperSource, LongAggregateColumnSource, LongAsTimeSource, LongChunkColumnSource, LongSsmBackedSource, MergeSortedHelper.SortedMergeColumnSource, NanosBasedTimeArraySource, NanosBasedTimeSparseArraySource, NullValueColumnSource, ObjectAggregateColumnSource, ObjectChunkColumnSource, ObjectSsmBackedSource, PrevColumnSource, RangeAggregateColumnSource, RedirectedColumnSource, ReversedColumnSource, RowKeyColumnSource, RowPositionColumnSource, RowSetColumnSourceWrapper, ShiftedColumnSource, ShortAggregateColumnSource, ShortChunkColumnSource, ShortSsmBackedSource, SingleValueColumnSource, SingleValueObjectColumnSource, SparseArrayColumnSource, SwitchColumnSource, SymbolTableToUniqueIdSource, UnboxedLongBackedColumnSource, UnboxedLongBackedColumnSource, UnboxedTimeBackedColumnSource, UngroupedColumnSource, UnionColumnSource, ViewColumnSource

public abstract class AbstractColumnSource<T> extends Object implements ColumnSource<T>, DefaultChunkSource.WithPrev<Values>
  • Field Details

    • USE_RANGES_AVERAGE_RUN_LENGTH

      public static final long USE_RANGES_AVERAGE_RUN_LENGTH
      Minimum average run length in an RowSequence that should trigger Chunk-filling by key ranges instead of individual keys.
      See Also:
    • type

      protected final Class<T> type
    • componentType

      protected final Class<?> componentType
    • updateGraph

      protected final UpdateGraph updateGraph
  • Constructor Details

    • AbstractColumnSource

      protected AbstractColumnSource(@NotNull @NotNull Class<T> type)
    • AbstractColumnSource

      public AbstractColumnSource(@NotNull @NotNull Class<T> type, @Nullable @Nullable Class<?> elementType)
  • Method Details

    • getType

      public Class<T> getType()
      Specified by:
      getType in interface ColumnSource<T>
    • getComponentType

      public Class<?> getComponentType()
      Specified by:
      getComponentType in interface ColumnSource<T>
    • getPrevSource

      public ColumnSource<T> getPrevSource()
      Specified by:
      getPrevSource in interface ChunkSource.WithPrev<T>
      Specified by:
      getPrevSource in interface ColumnSource<T>
      Specified by:
      getPrevSource in interface DefaultChunkSource.WithPrev<T>
      Returns:
      a chunk source which accesses the previous values.
    • match

      public WritableRowSet match(boolean invertMatch, boolean usePrev, boolean caseInsensitive, @Nullable @Nullable DataIndex dataIndex, @NotNull @NotNull RowSet mapper, Object... keys)
      Description copied from interface: ColumnSource
      Return a row set where the values in the column source match the given keys.
      Specified by:
      match in interface ColumnSource<T>
      Parameters:
      invertMatch - Whether to invert the match, i.e. return the rows where the values do not match the given keys
      usePrev - Whether to use the previous values for the ColumnSource
      caseInsensitive - Whether to perform a case insensitive match
      dataIndex - An optional data index that can be used to accelerate the match (the index table must be included in snapshot controls or otherwise guaranteed to be current)
      mapper - Restrict results to this row set
      keys - The keys to match in the column
      Returns:
      The rows that match the given keys
    • fillChunk

      public void fillChunk(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> destination, @NotNull @NotNull RowSequence rowSequence)
      Description copied from interface: ChunkSource
      Populates the given destination chunk with data corresponding to the keys from the given RowSequence.
      Specified by:
      fillChunk in interface ChunkSource<T>
      Parameters:
      context - A context containing all mutable/state related data used in retrieving the Chunk.
      destination - The chunk to be populated according to rowSequence. No assumptions shall be made about the size of the chunk shall be made. The chunk will be populated from position [0,rowSequence.size()).
      rowSequence - An RowSequence representing the keys to be fetched
    • defaultFillChunk

      @VisibleForTesting public final void defaultFillChunk(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> destination, @NotNull @NotNull RowSequence rowSequence)
    • fillPrevChunk

      public void fillPrevChunk(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> destination, @NotNull @NotNull RowSequence rowSequence)
      Description copied from interface: ChunkSource.WithPrev
      Populates the given destination chunk with data corresponding to the keys from the given RowSequence.
      Specified by:
      fillPrevChunk in interface ChunkSource.WithPrev<T>
      Parameters:
      context - A context containing all mutable/state related data used in retrieving the Chunk.
      destination - The chunk to be populated according to rowSequence. No assumptions shall be made about the size of the chunk shall be made. The chunk will be populated from position [0,rowSequence.size()).
      rowSequence - An RowSequence representing the keys to be fetched
    • defaultFillPrevChunk

      protected final void defaultFillPrevChunk(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> destination, @NotNull @NotNull RowSequence rowSequence)
    • allowsReinterpret

      public <ALTERNATE_DATA_TYPE> boolean allowsReinterpret(@NotNull @NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType)
      Description copied from interface: ColumnSource
      Test if a reinterpret call will succeed.
      Specified by:
      allowsReinterpret in interface ColumnSource<T>
      Parameters:
      alternateDataType - The alternative type to consider
      Returns:
      If a reinterpret on this column source with the supplied alternateDataType will succeed.
    • reinterpret

      public final <ALTERNATE_DATA_TYPE> ColumnSource<ALTERNATE_DATA_TYPE> reinterpret(@NotNull @NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType) throws IllegalArgumentException
      Description copied from interface: ColumnSource
      Provide an alternative view into the data underlying this column source.
      Specified by:
      reinterpret in interface ColumnSource<T>
      Parameters:
      alternateDataType - The alternative type to expose
      Returns:
      A column source of the alternate data type, backed by the same underlying data.
      Throws:
      IllegalArgumentException - If the alternativeDataType supplied is not supported
    • doReinterpret

      protected <ALTERNATE_DATA_TYPE> ColumnSource<ALTERNATE_DATA_TYPE> doReinterpret(@NotNull @NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType)
      Supply allowed reinterpret results. The default implementation handles the most common case to avoid code duplication.
      Parameters:
      alternateDataType - The alternate data type
      Returns:
      The resulting ColumnSource