public static ObjectType getObjectType()

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());
      }
    }