public Void visit()

in vector/src/main/java/org/apache/arrow/vector/validate/ValidateVectorTypeVisitor.java [247:359]


  public Void visit(BaseFixedWidthVector vector, Void value) {
    if (vector instanceof TinyIntVector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 8, true);
    } else if (vector instanceof SmallIntVector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 16, true);
    } else if (vector instanceof IntVector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 32, true);
    } else if (vector instanceof BigIntVector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 64, true);
    } else if (vector instanceof UInt1Vector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 8, false);
    } else if (vector instanceof UInt2Vector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 16, false);
    } else if (vector instanceof UInt4Vector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 32, false);
    } else if (vector instanceof UInt8Vector) {
      validateVectorCommon(vector, ArrowType.Int.class);
      validateIntVector(vector, 64, false);
    } else if (vector instanceof BitVector) {
      validateVectorCommon(vector, ArrowType.Bool.class);
    } else if (vector instanceof DecimalVector || vector instanceof Decimal256Vector) {
      validateVectorCommon(vector, ArrowType.Decimal.class);
      validateDecimalVector(vector);
    } else if (vector instanceof DateDayVector) {
      validateVectorCommon(vector, ArrowType.Date.class);
      validateDateVector(vector, DateUnit.DAY);
    } else if (vector instanceof DateMilliVector) {
      validateVectorCommon(vector, ArrowType.Date.class);
      validateDateVector(vector, DateUnit.MILLISECOND);
    } else if (vector instanceof DurationVector) {
      validateVectorCommon(vector, ArrowType.Duration.class);
      ArrowType.Duration arrowType = (ArrowType.Duration) vector.getField().getType();
      validateOrThrow(
          ((DurationVector) vector).getUnit() == arrowType.getUnit(),
          "Different duration time unit for vector and arrow type. Vector time unit %s, type time unit %s.",
          ((DurationVector) vector).getUnit(),
          arrowType.getUnit());
    } else if (vector instanceof Float4Vector) {
      validateVectorCommon(vector, ArrowType.FloatingPoint.class);
      validateFloatingPointVector(vector, FloatingPointPrecision.SINGLE);
    } else if (vector instanceof Float8Vector) {
      validateVectorCommon(vector, ArrowType.FloatingPoint.class);
      validateFloatingPointVector(vector, FloatingPointPrecision.DOUBLE);
    } else if (vector instanceof IntervalDayVector) {
      validateVectorCommon(vector, ArrowType.Interval.class);
      validateIntervalVector(vector, IntervalUnit.DAY_TIME);
    } else if (vector instanceof IntervalMonthDayNanoVector) {
      validateVectorCommon(vector, ArrowType.Interval.class);
      validateIntervalVector(vector, IntervalUnit.MONTH_DAY_NANO);
    } else if (vector instanceof IntervalYearVector) {
      validateVectorCommon(vector, ArrowType.Interval.class);
      validateIntervalVector(vector, IntervalUnit.YEAR_MONTH);
    } else if (vector instanceof TimeMicroVector) {
      validateVectorCommon(vector, ArrowType.Time.class);
      validateTimeVector(vector, TimeUnit.MICROSECOND, 64);
    } else if (vector instanceof TimeMilliVector) {
      validateVectorCommon(vector, ArrowType.Time.class);
      validateTimeVector(vector, TimeUnit.MILLISECOND, 32);
    } else if (vector instanceof TimeNanoVector) {
      validateVectorCommon(vector, ArrowType.Time.class);
      validateTimeVector(vector, TimeUnit.NANOSECOND, 64);
    } else if (vector instanceof TimeSecVector) {
      validateVectorCommon(vector, ArrowType.Time.class);
      validateTimeVector(vector, TimeUnit.SECOND, 32);
    } else if (vector instanceof TimeStampMicroTZVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.MICROSECOND, true);
    } else if (vector instanceof TimeStampMicroVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.MICROSECOND, false);
    } else if (vector instanceof TimeStampMilliTZVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.MILLISECOND, true);
    } else if (vector instanceof TimeStampMilliVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.MILLISECOND, false);
    } else if (vector instanceof TimeStampNanoTZVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.NANOSECOND, true);
    } else if (vector instanceof TimeStampNanoVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.NANOSECOND, false);
    } else if (vector instanceof TimeStampSecTZVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.SECOND, true);
    } else if (vector instanceof TimeStampSecVector) {
      validateVectorCommon(vector, ArrowType.Timestamp.class);
      validateTimeStampVector(vector, TimeUnit.SECOND, false);
    } else if (vector instanceof FixedSizeBinaryVector) {
      validateVectorCommon(vector, ArrowType.FixedSizeBinary.class);
      ArrowType.FixedSizeBinary arrowType = (ArrowType.FixedSizeBinary) vector.getField().getType();
      validateOrThrow(
          arrowType.getByteWidth() > 0,
          "The byte width of a FixedSizeBinaryVector %s is not positive.",
          arrowType.getByteWidth());
      validateOrThrow(
          arrowType.getByteWidth() == vector.getTypeWidth(),
          "Type width mismatch for FixedSizeBinaryVector. Vector type width %s, arrow type width %s.",
          vector.getTypeWidth(),
          arrowType.getByteWidth());
    } else {
      throw new IllegalArgumentException(
          "Unknown type for fixed width vector " + vector.getClass());
    }
    return null;
  }