in pinot-core/src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java [184:312]
public static ObjectType getObjectType(Object value) {
if (value instanceof String) {
return ObjectType.String;
} else if (value instanceof Long) {
return ObjectType.Long;
} else if (value instanceof Double) {
return ObjectType.Double;
} else if (value instanceof BigDecimal) {
return ObjectType.BigDecimal;
} else if (value instanceof IntArrayList) {
return ObjectType.IntArrayList;
} else if (value instanceof LongArrayList) {
return ObjectType.LongArrayList;
} else if (value instanceof FloatArrayList) {
return ObjectType.FloatArrayList;
} else if (value instanceof DoubleArrayList) {
return ObjectType.DoubleArrayList;
} else if (value instanceof ObjectArrayList) {
ObjectArrayList objectArrayList = (ObjectArrayList) value;
if (!objectArrayList.isEmpty()) {
Object next = objectArrayList.get(0);
if (next instanceof String) {
return ObjectType.StringArrayList;
}
throw new IllegalArgumentException(
"Unsupported type of value: " + next.getClass().getSimpleName());
}
return ObjectType.StringArrayList;
} else if (value instanceof AvgPair) {
return ObjectType.AvgPair;
} else if (value instanceof MinMaxRangePair) {
return ObjectType.MinMaxRangePair;
} else if (value instanceof HyperLogLog) {
return ObjectType.HyperLogLog;
} else if (value instanceof QuantileDigest) {
return ObjectType.QuantileDigest;
} else if (value instanceof Int2LongMap) {
return ObjectType.Int2LongMap;
} else if (value instanceof Long2LongMap) {
return ObjectType.Long2LongMap;
} else if (value instanceof Float2LongMap) {
return ObjectType.Float2LongMap;
} else if (value instanceof Double2LongMap) {
return ObjectType.Double2LongMap;
} else if (value instanceof Map) {
return ObjectType.Map;
} else if (value instanceof IntSet) {
return ObjectType.IntSet;
} else if (value instanceof TDigest) {
return ObjectType.TDigest;
} else if (value instanceof Sketch) {
return ObjectType.DataSketch;
} else if (value instanceof KllDoublesSketch) {
return ObjectType.KllDataSketch;
} else if (value instanceof Geometry) {
return ObjectType.Geometry;
} else if (value instanceof RoaringBitmap) {
return ObjectType.RoaringBitmap;
} else if (value instanceof LongSet) {
return ObjectType.LongSet;
} else if (value instanceof FloatSet) {
return ObjectType.FloatSet;
} else if (value instanceof DoubleSet) {
return ObjectType.DoubleSet;
} else if (value instanceof ObjectLinkedOpenHashSet) {
ObjectLinkedOpenHashSet objectSet = (ObjectLinkedOpenHashSet) value;
if (objectSet.isEmpty() || objectSet.first() instanceof String) {
return ObjectType.OrderedStringSet;
}
throw new IllegalArgumentException(
"Unsupported type of value: " + objectSet.first().getClass().getSimpleName());
} else if (value instanceof ObjectSet) {
ObjectSet objectSet = (ObjectSet) value;
if (objectSet.isEmpty() || objectSet.iterator().next() instanceof String) {
return ObjectType.StringSet;
} else {
return ObjectType.BytesSet;
}
} else if (value instanceof IdSet) {
return ObjectType.IdSet;
} else if (value instanceof List) {
return ObjectType.List;
} else if (value instanceof IntLongPair) {
return ObjectType.IntLongPair;
} else if (value instanceof LongLongPair) {
return ObjectType.LongLongPair;
} else if (value instanceof FloatLongPair) {
return ObjectType.FloatLongPair;
} else if (value instanceof DoubleLongPair) {
return ObjectType.DoubleLongPair;
} else if (value instanceof StringLongPair) {
return ObjectType.StringLongPair;
} else if (value instanceof CovarianceTuple) {
return ObjectType.CovarianceTuple;
} else if (value instanceof VarianceTuple) {
return ObjectType.VarianceTuple;
} else if (value instanceof PinotFourthMoment) {
return ObjectType.PinotFourthMoment;
} else if (value instanceof org.apache.datasketches.tuple.Sketch) {
return ObjectType.IntegerTupleSketch;
} else if (value instanceof ExprMinMaxObject) {
return ObjectType.ExprMinMaxObject;
} else if (value instanceof ItemsSketch) {
return ObjectType.FrequentStringsSketch;
} else if (value instanceof LongsSketch) {
return ObjectType.FrequentLongsSketch;
} else if (value instanceof HyperLogLogPlus) {
return ObjectType.HyperLogLogPlus;
} else if (value instanceof CpcSketch) {
return ObjectType.CompressedProbabilisticCounting;
} else if (value instanceof UltraLogLog) {
return ObjectType.UltraLogLog;
} else if (value instanceof ThetaSketchAccumulator) {
return ObjectType.ThetaSketchAccumulator;
} else if (value instanceof TupleIntSketchAccumulator) {
return ObjectType.TupleIntSketchAccumulator;
} else if (value instanceof CpcSketchAccumulator) {
return ObjectType.CpcSketchAccumulator;
} else if (value instanceof PriorityQueue) {
PriorityQueue priorityQueue = (PriorityQueue) value;
if (priorityQueue.isEmpty() || priorityQueue.peek() instanceof FunnelStepEvent) {
return ObjectType.FunnelStepEventAccumulator;
}
throw new IllegalArgumentException(
"Unsupported type of value: " + priorityQueue.peek().getClass().getSimpleName());
} else {
throw new IllegalArgumentException("Unsupported type of value: " + value.getClass().getSimpleName());
}
}