io.deephaven.engine.table.impl.util.freezeby.FloatFreezeByHelper 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
*/
/*
* ---------------------------------------------------------------------------------------------------------------------
* AUTO-GENERATED CLASS - DO NOT EDIT MANUALLY - for any changes edit CharFreezeByHelper and regenerate
* ---------------------------------------------------------------------------------------------------------------------
*/
package io.deephaven.engine.table.impl.util.freezeby;
import io.deephaven.chunk.attributes.ChunkLengths;
import io.deephaven.chunk.attributes.ChunkPositions;
import io.deephaven.chunk.attributes.Values;
import io.deephaven.engine.table.WritableColumnSource;
import io.deephaven.engine.table.impl.sources.FloatArraySource;
import io.deephaven.chunk.*;
import io.deephaven.engine.rowset.RowSequence;
import io.deephaven.engine.rowset.chunkattributes.RowKeys;
class FloatFreezeByHelper implements FreezeByOperator.FreezeByHelper {
private final FloatArraySource resultSource;
private final FreezeByCountOperator rowCount;
FloatFreezeByHelper(WritableColumnSource resultSource, FreezeByCountOperator rowCount) {
this.resultSource = (FloatArraySource)resultSource;
this.rowCount = rowCount;
}
@Override
public void addChunk(Chunk extends Values> values, IntChunk startPositions, IntChunk destinations, IntChunk length) {
final FloatChunk asFloat = values.asFloatChunk();
for (int ii = 0; ii < startPositions.size(); ++ii) {
final int position = startPositions.get(ii);
final int destination = destinations.get(position);
// if there is just row churn for a key, we don't want to re-snapshot the value (adds/removes just get ignored)
if (rowCount.wasDestinationEmpty(destination)) {
resultSource.set(destination, asFloat.get(position));
}
}
}
@Override
public void addChunk(Chunk extends Values> values, long destination) {
if (rowCount.wasDestinationEmpty(destination)) {
final FloatChunk asFloat = values.asFloatChunk();
resultSource.set(destination, asFloat.get(0));
}
}
@Override
public void clearIndex(RowSequence removed) {
// region clearIndex
// endregion clearIndex
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy