io.deephaven.engine.table.impl.sources.UngroupedBoxedLongArrayColumnSource Maven / Gradle / Ivy
Show all versions of deephaven-engine-table Show documentation
/**
* Copyright (c) 2016-2022 Deephaven Data Labs and Patent Pending
*/
/*
* ---------------------------------------------------------------------------------------------------------------------
* AUTO-GENERATED CLASS - DO NOT EDIT MANUALLY - for any changes edit UngroupedBoxedCharArrayColumnSource and regenerate
* ---------------------------------------------------------------------------------------------------------------------
*/
package io.deephaven.engine.table.impl.sources;
import io.deephaven.engine.table.ColumnSource;
import io.deephaven.engine.table.impl.MutableColumnSourceGetDefaults;
import static io.deephaven.util.QueryConstants.NULL_LONG;
/**
* An Ungrouped Column sourced for the Boxed Type Long.
*
* The UngroupedBoxedC-harArrayColumnSource is replicated to all other types with
* io.deephaven.engine.table.impl.sources.Replicate.
*
* (C-har is deliberately spelled that way in order to prevent Replicate from altering this very comment).
*/
public class UngroupedBoxedLongArrayColumnSource extends UngroupedColumnSource implements MutableColumnSourceGetDefaults.ForObject {
private ColumnSource innerSource;
@Override
public Class> getComponentType() {
return null;
}
public UngroupedBoxedLongArrayColumnSource(ColumnSource innerSource) {
super(Long.class);
this.innerSource = innerSource;
}
@Override
public Long get(long rowKey) {
final long result = getLong(rowKey);
return (result == NULL_LONG?null:result);
}
@Override
public long getLong(long rowKey) {
if (rowKey < 0) {
return NULL_LONG;
}
long segment = rowKey >>base;
int offset = (int) (rowKey & ((1< = array.length || array[offset] == null) {
return NULL_LONG;
}
return array[offset];
}
@Override
public Long getPrev(long rowKey) {
final long result = getPrevLong(rowKey);
return (result == NULL_LONG?null:result);
}
@Override
public long getPrevLong(long rowKey) {
if (rowKey < 0) {
return NULL_LONG;
}
long segment = rowKey >> getPrevBase();
int offset = (int) (rowKey & ((1<< getPrevBase()) - 1));
Long[] array = innerSource.getPrev(segment);
if (array == null || offset >= array.length || array[offset] == null) {
return NULL_LONG;
}
return array[offset];
}
@Override
public boolean isImmutable() {
return innerSource.isImmutable();
}
}