public static VectorValueComparator createDefaultComparator()

in algorithm/src/main/java/org/apache/arrow/algorithm/sort/DefaultVectorComparators.java [67:135]


  public static <T extends ValueVector> VectorValueComparator<T> createDefaultComparator(T vector) {
    if (vector instanceof BaseFixedWidthVector) {
      if (vector instanceof TinyIntVector) {
        return (VectorValueComparator<T>) new ByteComparator();
      } else if (vector instanceof SmallIntVector) {
        return (VectorValueComparator<T>) new ShortComparator();
      } else if (vector instanceof IntVector) {
        return (VectorValueComparator<T>) new IntComparator();
      } else if (vector instanceof BigIntVector) {
        return (VectorValueComparator<T>) new LongComparator();
      } else if (vector instanceof Float4Vector) {
        return (VectorValueComparator<T>) new Float4Comparator();
      } else if (vector instanceof Float8Vector) {
        return (VectorValueComparator<T>) new Float8Comparator();
      } else if (vector instanceof UInt1Vector) {
        return (VectorValueComparator<T>) new UInt1Comparator();
      } else if (vector instanceof UInt2Vector) {
        return (VectorValueComparator<T>) new UInt2Comparator();
      } else if (vector instanceof UInt4Vector) {
        return (VectorValueComparator<T>) new UInt4Comparator();
      } else if (vector instanceof UInt8Vector) {
        return (VectorValueComparator<T>) new UInt8Comparator();
      } else if (vector instanceof BitVector) {
        return (VectorValueComparator<T>) new BitComparator();
      } else if (vector instanceof DateDayVector) {
        return (VectorValueComparator<T>) new DateDayComparator();
      } else if (vector instanceof DateMilliVector) {
        return (VectorValueComparator<T>) new DateMilliComparator();
      } else if (vector instanceof Decimal256Vector) {
        return (VectorValueComparator<T>) new Decimal256Comparator();
      } else if (vector instanceof DecimalVector) {
        return (VectorValueComparator<T>) new DecimalComparator();
      } else if (vector instanceof DurationVector) {
        return (VectorValueComparator<T>) new DurationComparator();
      } else if (vector instanceof IntervalDayVector) {
        return (VectorValueComparator<T>) new IntervalDayComparator();
      } else if (vector instanceof IntervalMonthDayNanoVector) {
        throw new IllegalArgumentException(
            "No default comparator for " + vector.getClass().getCanonicalName());
      } else if (vector instanceof TimeMicroVector) {
        return (VectorValueComparator<T>) new TimeMicroComparator();
      } else if (vector instanceof TimeMilliVector) {
        return (VectorValueComparator<T>) new TimeMilliComparator();
      } else if (vector instanceof TimeNanoVector) {
        return (VectorValueComparator<T>) new TimeNanoComparator();
      } else if (vector instanceof TimeSecVector) {
        return (VectorValueComparator<T>) new TimeSecComparator();
      } else if (vector instanceof TimeStampVector) {
        return (VectorValueComparator<T>) new TimeStampComparator();
      } else if (vector instanceof FixedSizeBinaryVector) {
        return (VectorValueComparator<T>) new FixedSizeBinaryComparator();
      }
    } else if (vector instanceof VariableWidthVector) {
      return (VectorValueComparator<T>) new VariableWidthComparator();
    } else if (vector instanceof RepeatedValueVector) {
      VectorValueComparator<?> innerComparator =
          createDefaultComparator(((RepeatedValueVector) vector).getDataVector());
      return new RepeatedValueComparator(innerComparator);
    } else if (vector instanceof FixedSizeListVector) {
      VectorValueComparator<?> innerComparator =
          createDefaultComparator(((FixedSizeListVector) vector).getDataVector());
      return new FixedSizeListComparator(innerComparator);
    } else if (vector instanceof NullVector) {
      return (VectorValueComparator<T>) new NullComparator();
    }

    throw new IllegalArgumentException(
        "No default comparator for " + vector.getClass().getCanonicalName());
  }