com.adgear.anoa.read.ThriftReader Maven / Gradle / Ivy
package com.adgear.anoa.read;
import com.adgear.anoa.AnoaReflectionUtils;
import org.apache.thrift.TBase;
import org.apache.thrift.TFieldIdEnum;
import org.apache.thrift.meta_data.FieldValueMetaData;
import org.apache.thrift.meta_data.StructMetaData;
import org.apache.thrift.protocol.TType;
import org.jooq.lambda.Unchecked;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.function.Supplier;
class ThriftReader>
extends AbstractRecordReader> {
final private Supplier constructor;
final private int nRequired;
ThriftReader(Class thriftClass) {
super(buildFieldWrappers(thriftClass).values().stream());
this.constructor = getConstructor(thriftClass);
this.nRequired = (int) fieldWrappers.stream().filter(w -> w.isRequired).count();
}
static private >
Map> buildFieldWrappers(Class thriftClass) {
Map> map = new LinkedHashMap<>();
AnoaReflectionUtils.getThriftMetaDataMap(thriftClass).forEach((f, md) -> {
Supplier
© 2015 - 2025 Weber Informatics LLC | Privacy Policy