io.deephaven.engine.table.impl.ssa.SsaSsaStamp Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of deephaven-engine-table Show documentation
Show all versions of deephaven-engine-table Show documentation
Engine Table: Implementation and closely-coupled utilities
/**
* Copyright (c) 2016-2022 Deephaven Data Labs and Patent Pending
*/
package io.deephaven.engine.table.impl.ssa;
import io.deephaven.chunk.*;
import io.deephaven.engine.rowset.chunkattributes.RowKeys;
import io.deephaven.chunk.attributes.Values;
import io.deephaven.engine.table.impl.util.WritableRowRedirection;
import io.deephaven.engine.table.impl.util.RowRedirection;
import io.deephaven.engine.rowset.RowSetBuilderRandom;
public interface SsaSsaStamp {
static SsaSsaStamp make(ChunkType type, boolean reverse) {
if (reverse) {
switch (type) {
case Char:
return NullAwareCharReverseSsaSsaStamp.INSTANCE;
case Byte:
return ByteReverseSsaSsaStamp.INSTANCE;
case Short:
return ShortReverseSsaSsaStamp.INSTANCE;
case Int:
return IntReverseSsaSsaStamp.INSTANCE;
case Long:
return LongReverseSsaSsaStamp.INSTANCE;
case Float:
return FloatReverseSsaSsaStamp.INSTANCE;
case Double:
return DoubleReverseSsaSsaStamp.INSTANCE;
case Object:
return ObjectReverseSsaSsaStamp.INSTANCE;
default:
case Boolean:
throw new UnsupportedOperationException();
}
} else {
switch (type) {
case Char:
return NullAwareCharSsaSsaStamp.INSTANCE;
case Byte:
return ByteSsaSsaStamp.INSTANCE;
case Short:
return ShortSsaSsaStamp.INSTANCE;
case Int:
return IntSsaSsaStamp.INSTANCE;
case Long:
return LongSsaSsaStamp.INSTANCE;
case Float:
return FloatSsaSsaStamp.INSTANCE;
case Double:
return DoubleSsaSsaStamp.INSTANCE;
case Object:
return ObjectSsaSsaStamp.INSTANCE;
default:
case Boolean:
throw new UnsupportedOperationException();
}
}
}
void processEntry(SegmentedSortedArray leftSsa, SegmentedSortedArray ssa, WritableRowRedirection rowRedirection,
boolean disallowExactMatch);
void processRemovals(SegmentedSortedArray leftSsa, Chunk extends Values> rightStampChunk,
LongChunk rightKeys, WritableLongChunk priorRedirections,
WritableRowRedirection rowRedirection, RowSetBuilderRandom modifiedBuilder, boolean disallowExactMatch);
void processInsertion(SegmentedSortedArray leftSsa, Chunk extends Values> rightStampChunk,
LongChunk rightKeys, Chunk nextRightValue,
WritableRowRedirection rowRedirection,
RowSetBuilderRandom modifiedBuilder, boolean endsWithLastValue, boolean disallowExactMatch);
void findModified(SegmentedSortedArray leftSsa, RowRedirection rowRedirection,
Chunk extends Values> rightStampChunk, LongChunk rightStampIndices,
RowSetBuilderRandom modifiedBuilder, boolean disallowExactMatch);
void applyShift(SegmentedSortedArray leftSsa, Chunk extends Values> rightStampChunk,
LongChunk rightStampKeys, long shiftDelta, WritableRowRedirection rowRedirection,
boolean disallowExactMatch);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy