io.deephaven.kafka.ingest.GenericRecordInstantArrayFieldCopier Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of deephaven-extensions-kafka Show documentation
Show all versions of deephaven-extensions-kafka Show documentation
Kafka: Integrating Engine tables with Kafka
The newest version!
//
// Copyright (c) 2016-2024 Deephaven Data Labs and Patent Pending
//
package io.deephaven.kafka.ingest;
import io.deephaven.chunk.ObjectChunk;
import io.deephaven.chunk.WritableChunk;
import io.deephaven.chunk.WritableObjectChunk;
import io.deephaven.chunk.attributes.Values;
import io.deephaven.time.DateTimeUtils;
import org.apache.avro.Schema;
import org.apache.avro.generic.GenericArray;
import org.apache.avro.generic.GenericRecord;
import java.time.Instant;
import java.util.regex.Pattern;
public class GenericRecordInstantArrayFieldCopier extends GenericRecordFieldCopier {
private final long multiplier;
public GenericRecordInstantArrayFieldCopier(final String fieldPathStr, final Pattern separator, final Schema schema,
final long multiplier) {
super(fieldPathStr, separator, schema);
this.multiplier = multiplier;
}
private static Instant[] convertArray(final GenericArray> ga, final long multiplier) {
final int gaSize = ga.size();
if (gaSize == 0) {
return DateTimeUtils.ZERO_LENGTH_INSTANT_ARRAY;
}
final Instant[] out = new Instant[ga.size()];
int i = 0;
for (Object o : ga) {
out[i] = DateTimeUtils.epochNanosToInstant(multiplier * (long) o);
++i;
}
return out;
}
@Override
public void copyField(
final ObjectChunk