Class ImmutableConstantNanosBasedTimeSource<TIME_TYPE>
java.lang.Object
io.deephaven.engine.table.impl.AbstractColumnSource<TIME_TYPE>
io.deephaven.engine.table.impl.sources.immutable.ImmutableConstantNanosBasedTimeSource<TIME_TYPE>
- All Implemented Interfaces:
- ChunkSource<Values>,- ChunkSource.WithPrev<Values>,- ColumnSource<TIME_TYPE>,- ElementSource<TIME_TYPE>,- FillContextMaker,- GetContextMaker,- DefaultChunkSource<Values>,- DefaultChunkSource.WithPrev<Values>,- PushdownFilterMatcher,- ConvertibleTimeSource,- FillUnordered<Values>,- InMemoryColumnSource,- RowKeyAgnosticChunkSource<Values>,- Releasable,- TupleExporter<TIME_TYPE>,- TupleSource<TIME_TYPE>
- Direct Known Subclasses:
- ImmutableConstantInstantSource,- ImmutableConstantZonedDateTimeSource
public abstract class ImmutableConstantNanosBasedTimeSource<TIME_TYPE>
extends AbstractColumnSource<TIME_TYPE>
implements InMemoryColumnSource, RowKeyAgnosticChunkSource<Values>, ConvertibleTimeSource
- 
Nested Class SummaryNested classes/interfaces inherited from class io.deephaven.engine.table.impl.AbstractColumnSourceAbstractColumnSource.DefaultedImmutable<DATA_TYPE>, AbstractColumnSource.DefaultedMutable<DATA_TYPE>Nested classes/interfaces inherited from interface io.deephaven.engine.table.ChunkSourceChunkSource.FillContext, ChunkSource.GetContext, ChunkSource.WithPrev<ATTR extends Any>Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.sources.ConvertibleTimeSourceConvertibleTimeSource.ZonedNested classes/interfaces inherited from interface io.deephaven.engine.table.impl.DefaultChunkSourceDefaultChunkSource.SupportsContiguousGet<ATTR extends Any>, DefaultChunkSource.WithPrev<ATTR extends Any>Nested classes/interfaces inherited from interface io.deephaven.engine.table.TupleExporterTupleExporter.ExportElementFunction<TUPLE_TYPE>
- 
Field SummaryFieldsFields inherited from class io.deephaven.engine.table.impl.AbstractColumnSourcecomponentType, type, updateGraph, USE_PARALLEL_ROWSET_BUILD, USE_PARTIAL_TABLE_DATA_INDEX, USE_RANGES_AVERAGE_RUN_LENGTHFields inherited from interface io.deephaven.engine.table.ChunkSourceDEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAYFields inherited from interface io.deephaven.engine.table.ChunkSource.WithPrevZERO_LENGTH_CHUNK_SOURCE_WITH_PREV_ARRAYFields inherited from interface io.deephaven.engine.table.ColumnSourceZERO_LENGTH_COLUMN_SOURCE_ARRAYFields inherited from interface io.deephaven.engine.table.impl.sources.InMemoryColumnSourceTWO_DIMENSIONAL_COLUMN_SOURCE_THRESHOLD
- 
Constructor SummaryConstructorsConstructorDescriptionImmutableConstantNanosBasedTimeSource(@NotNull Class<TIME_TYPE> type, ImmutableConstantLongSource nanoSource) 
- 
Method SummaryModifier and TypeMethodDescription<ALTERNATE_DATA_TYPE>
 booleanallowsReinterpret(@NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType) Test if a reinterpret call will succeed.protected <ALTERNATE_DATA_TYPE>
 ColumnSource<ALTERNATE_DATA_TYPE>doReinterpret(@NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType) Supply allowed reinterpret results.voidestimatePushdownFilterCost(WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext context, JobScheduler jobScheduler, LongConsumer onComplete, Consumer<Exception> onError) Estimate the cost of pushing down the next pushdown filter.final voidfillChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Values> destination, @NotNull RowSequence rowSequence) Populates the given destination chunk with data corresponding to the keys from the givenRowSequence.voidfillChunkUnordered(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Values> dest, @NotNull LongChunk<? extends RowKeys> keys) Populates a contiguous portion of the given destination chunk with data corresponding to the keys from the givenLongChunk.final voidfillPrevChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Values> destination, @NotNull RowSequence rowSequence) Populates the given destination chunk with data corresponding to the keys from the givenRowSequence.voidfillPrevChunkUnordered(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Values> dest, @NotNull LongChunk<? extends RowKeys> keys) Populates a contiguous portion of the given destination chunk with prev data corresponding to the keys from the givenLongChunk.get(long rowKey) Get the value from the source.longgetLong(long rowKey) Get the value at the rowKey as a long.getPrev(long rowKey) Get the previous value at the rowKey.longgetPrevLong(long rowKey) Get the previous value at the rowKey as a long.protected abstract TIME_TYPEmakeValue(long nanos) booleanReturns true if this column source can efficiently provide an unordered fill.voidpushdownFilter(WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext context, long costCeiling, JobScheduler jobScheduler, Consumer<PushdownResult> onComplete, Consumer<Exception> onError) Push down the given filter to the underlying table and pass the result to the consumer.booleanCheck if this class supports time conversion.Convert this source to alongsource of nanoseconds of epoch.Convert this source to anInstantsource.toLocalDate(@NotNull ZoneId zone) toLocalTime(@NotNull ZoneId zone) protected abstract longtoZonedDateTime(@NotNull ZoneId zone) Convert this source to aZonedDateTimesource at the specifiedzone.Methods inherited from class io.deephaven.engine.table.impl.AbstractColumnSourcedefaultFillChunk, defaultFillPrevChunk, getComponentType, getPrevSource, getType, makePushdownFilterContext, match, pushdownManager, reinterpretMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.engine.table.ColumnSourcecast, cast, cast, cast, createPreviousTuple, createTuple, createTupleFromValues, exportAllTo, exportElement, exportElement, getChunkType, isImmutable, isStateless, releaseCachedResources, startTrackingPrevValues, tupleLengthMethods inherited from interface io.deephaven.engine.table.impl.DefaultChunkSourcegetChunk, getChunk, getChunkByFilling, makeFillContext, makeGetContextMethods inherited from interface io.deephaven.engine.table.impl.DefaultChunkSource.WithPrevgetPrevChunk, getPrevChunk, getPrevChunkByFillingMethods inherited from interface io.deephaven.engine.table.ElementSourcegetBoolean, getByte, getChar, getDouble, getFloat, getInt, getPrevBoolean, getPrevByte, getPrevChar, getPrevDouble, getPrevFloat, getPrevInt, getPrevShort, getShortMethods inherited from interface io.deephaven.engine.table.FillContextMakermakeFillContextMethods inherited from interface io.deephaven.engine.table.GetContextMakermakeGetContextMethods inherited from interface io.deephaven.engine.table.impl.sources.InMemoryColumnSourceisInMemoryMethods inherited from interface io.deephaven.engine.table.TupleExporterexportAllReinterpretedTo, exportAllReinterpretedTo, exportAllTo, exportElementReinterpretedMethods inherited from interface io.deephaven.engine.table.TupleSourcecreateTupleFromReinterpretedValues
- 
Field Details- 
nanoSource
 
- 
- 
Constructor Details- 
ImmutableConstantNanosBasedTimeSourcepublic ImmutableConstantNanosBasedTimeSource(@NotNull @NotNull Class<TIME_TYPE> type, ImmutableConstantLongSource nanoSource) 
 
- 
- 
Method Details- 
makeValue
- 
toNanos
- 
getDescription copied from interface:ElementSourceGet the value from the source. This may return boxed values for basic types. RowKeys that are not present are undefined.- Specified by:
- getin interface- ElementSource<TIME_TYPE>
- Parameters:
- rowKey- the location in key space to get the value from.
- Returns:
- the value at the rowKey, potentially null.
 
- 
getPrevDescription copied from interface:ElementSourceGet the previous value at the rowKey. Previous values are used during anUGupdatecycle to process changes in data. Duringnormaloperation previous values will be identical tocurrentvalues. RowKeys that were not present are undefined.- Specified by:
- getPrevin interface- ElementSource<TIME_TYPE>
- Parameters:
- rowKey- the location in key space to get the value from.
- Returns:
- the previous value at the rowKey, potentially null.
 
- 
getLongpublic long getLong(long rowKey) Description copied from interface:ElementSourceGet the value at the rowKey as a long. RowKeys that are not present are undefined.- Specified by:
- getLongin interface- ElementSource<TIME_TYPE>
- Parameters:
- rowKey- the location in key space to get the value from.
- Returns:
- the long at the rowKey, null values are represented by QueryConstants.NULL_LONG
 
- 
getPrevLongpublic long getPrevLong(long rowKey) Description copied from interface:ElementSourceGet the previous value at the rowKey as a long. SeeElementSource.getPrev(long)for more details.- Specified by:
- getPrevLongin interface- ElementSource<TIME_TYPE>
- Parameters:
- rowKey- the location in key space to get the previous value from.
- Returns:
- the previous long at the rowKey, null values are represented by QueryConstants.NULL_LONG
 
- 
fillChunkpublic final void fillChunk(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> destination, @NotNull @NotNull RowSequence rowSequence) Description copied from interface:ChunkSourcePopulates the given destination chunk with data corresponding to the keys from the givenRowSequence.- Specified by:
- fillChunkin interface- ChunkSource<TIME_TYPE>
- Overrides:
- fillChunkin class- AbstractColumnSource<TIME_TYPE>
- 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- RowSequencerepresenting the keys to be fetched
 
- 
fillPrevChunkpublic final void fillPrevChunk(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> destination, @NotNull @NotNull RowSequence rowSequence) Description copied from interface:ChunkSource.WithPrevPopulates the given destination chunk with data corresponding to the keys from the givenRowSequence.- Specified by:
- fillPrevChunkin interface- ChunkSource.WithPrev<TIME_TYPE>
- Overrides:
- fillPrevChunkin class- AbstractColumnSource<TIME_TYPE>
- 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- RowSequencerepresenting the keys to be fetched
 
- 
fillChunkUnorderedpublic void fillChunkUnordered(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> dest, @NotNull @NotNull LongChunk<? extends RowKeys> keys) Description copied from interface:FillUnorderedPopulates a contiguous portion of the given destination chunk with data corresponding to the keys from the givenLongChunk.It behaves as if the following code were executed: destination.setSize(keys.size()); for (int ii = 0; ii < keys.size(); ++ii) { destination.set(ii, get(keys.get(ii))); }- Specified by:
- fillChunkUnorderedin interface- FillUnordered<TIME_TYPE>
- Parameters:
- context- A context containing all mutable/state related data used in retrieving the Chunk.
- dest- The chunk to be populated according to- keys
- keys- A chunk of individual, not assumed to be ordered keys to be fetched
 
- 
fillPrevChunkUnorderedpublic void fillPrevChunkUnordered(@NotNull @NotNull ChunkSource.FillContext context, @NotNull @NotNull WritableChunk<? super Values> dest, @NotNull @NotNull LongChunk<? extends RowKeys> keys) Description copied from interface:FillUnorderedPopulates a contiguous portion of the given destination chunk with prev data corresponding to the keys from the givenLongChunk.It behaves as if the following code were executed: destination.setSize(keys.size()); for (int ii = 0; ii < keys.size(); ++ii) { destination.set(ii, getPrev(keys.get(ii))); }- Specified by:
- fillPrevChunkUnorderedin interface- FillUnordered<TIME_TYPE>
- Parameters:
- context- A context containing all mutable/state related data used in retrieving the Chunk.
- dest- The chunk to be populated according to- keys
- keys- A chunk of individual, not assumed to be ordered keys to be fetched
 
- 
providesFillUnorderedpublic boolean providesFillUnordered()Description copied from interface:FillUnorderedReturns true if this column source can efficiently provide an unordered fill. If this method returns false, then fillChunkUnordered and fillPrevChunkUnordered may throw an UnsupportedOperationException.- Specified by:
- providesFillUnorderedin interface- FillUnordered<TIME_TYPE>
- Returns:
- if this column source can provide an unordered fill
 
- 
allowsReinterpretpublic <ALTERNATE_DATA_TYPE> boolean allowsReinterpret(@NotNull @NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType) Description copied from interface:ColumnSourceTest if a reinterpret call will succeed.- Specified by:
- allowsReinterpretin interface- ColumnSource<TIME_TYPE>
- Overrides:
- allowsReinterpretin class- AbstractColumnSource<TIME_TYPE>
- Parameters:
- alternateDataType- The alternative type to consider
- Returns:
- If a reinterpret on this column source with the supplied alternateDataType will succeed.
 
- 
doReinterpretprotected <ALTERNATE_DATA_TYPE> ColumnSource<ALTERNATE_DATA_TYPE> doReinterpret(@NotNull @NotNull Class<ALTERNATE_DATA_TYPE> alternateDataType) Description copied from class:AbstractColumnSourceSupply allowed reinterpret results. The default implementation handles the most common case to avoid code duplication.- Overrides:
- doReinterpretin class- AbstractColumnSource<TIME_TYPE>
- Parameters:
- alternateDataType- The alternate data type
- Returns:
- The resulting ColumnSource
 
- 
supportsTimeConversionpublic boolean supportsTimeConversion()Description copied from interface:ConvertibleTimeSourceCheck if this class supports time conversion. If false, all other methods will fail.- Specified by:
- supportsTimeConversionin interface- ConvertibleTimeSource
- Returns:
- true if time conversion is supported.
 
- 
toZonedDateTimeDescription copied from interface:ConvertibleTimeSourceConvert this source to aZonedDateTimesource at the specifiedzone.- Specified by:
- toZonedDateTimein interface- ConvertibleTimeSource
- Parameters:
- zone- the time zone
- Returns:
- a view of this source as a ZonedDateTime
 
- 
toLocalDateDescription copied from interface:ConvertibleTimeSource- Specified by:
- toLocalDatein interface- ConvertibleTimeSource
- Parameters:
- zone- the time zone
- Returns:
- a view of this source as a LocalDate
 
- 
toLocalTimeDescription copied from interface:ConvertibleTimeSource- Specified by:
- toLocalTimein interface- ConvertibleTimeSource
- Parameters:
- zone- the time zone
- Returns:
- a view of this source as a LocalTime
 
- 
toInstantDescription copied from interface:ConvertibleTimeSourceConvert this source to anInstantsource.- Specified by:
- toInstantin interface- ConvertibleTimeSource
- Returns:
- a view of this source asan Instant
 
- 
toEpochNanoDescription copied from interface:ConvertibleTimeSourceConvert this source to alongsource of nanoseconds of epoch.- Specified by:
- toEpochNanoin interface- ConvertibleTimeSource
- Returns:
- a view of this source as a ZonedDateTime
 
- 
estimatePushdownFilterCostpublic void estimatePushdownFilterCost(WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext context, JobScheduler jobScheduler, LongConsumer onComplete, Consumer<Exception> onError) Description copied from interface:PushdownFilterMatcherEstimate the cost of pushing down the next pushdown filter. This returns a unitless value to compare the cost of executing different filters. Common costs are listed inPushdownResult(such asPushdownResult.METADATA_STATS_COST) and should be used as a baseline for estimating the cost of newly implemented pushdown operations.A no-op implementation should simply complete with Long.MAX_VALUE.- Specified by:
- estimatePushdownFilterCostin interface- PushdownFilterMatcher
- Overrides:
- estimatePushdownFilterCostin class- AbstractColumnSource<TIME_TYPE>
- Parameters:
- filter- The- filterto test.
- selection- The set of rows to tests.
- usePrev- Whether to use the previous result
- context- The- PushdownFilterContextto use for the pushdown operation.
- jobScheduler- The job scheduler to use for scheduling child jobs
- onComplete- Consumer of the estimated cost of the pushdown operation. 9223372036854775807L indicates that the filter cannot be pushed down.
- onError- Consumer of any exceptions that occur during the estimate operation
 
- 
pushdownFilterpublic void pushdownFilter(WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext context, long costCeiling, JobScheduler jobScheduler, Consumer<PushdownResult> onComplete, Consumer<Exception> onError) Description copied from interface:PushdownFilterMatcherPush down the given filter to the underlying table and pass the result to the consumer. This method is expected to execute all pushdown filter steps that are greater thanPushdownFilterContext.executedFilterCost()and less than or equal tocostCeiling.The resulting PushdownResult(toonComplete) must only contain rows fromselection. Thematch row setare rows that are guaranteed to match. The implicitly "missing" rowsselection - match - maybeMatchare rows that are guaranteed to not match. The remainingmaybe match row setare rows that may, or may not, match. The pushdown result ownership passes toonComplete.A no-op implementation should simply complete with PushdownResult.maybeMatch(selection).- Specified by:
- pushdownFilterin interface- PushdownFilterMatcher
- Overrides:
- pushdownFilterin class- AbstractColumnSource<TIME_TYPE>
- Parameters:
- filter- The- filterto apply.
- selection- The set of rows to test.
- usePrev- Whether to use the previous result
- context- The- PushdownFilterContextto use for the pushdown operation.
- costCeiling- Execute all possible filters with a cost less than or equal this value.
- jobScheduler- The job scheduler to use for scheduling child jobs
- onComplete- Consumer of the output rowsets for added and modified rows that pass the filter
- onError- Consumer of any exceptions that occur during the pushdown operation
 
 
-