private static SortOrder sortOrder()

in parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java [968:1072]


  private static SortOrder sortOrder(PrimitiveType primitive) {
    LogicalTypeAnnotation annotation = primitive.getLogicalTypeAnnotation();
    if (annotation != null) {
      return annotation
          .accept(new LogicalTypeAnnotation.LogicalTypeAnnotationVisitor<SortOrder>() {
            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.IntLogicalTypeAnnotation intLogicalType) {
              return intLogicalType.isSigned() ? of(SortOrder.SIGNED) : of(SortOrder.UNSIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.IntervalLogicalTypeAnnotation intervalLogicalType) {
              return of(SortOrder.UNKNOWN);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.DateLogicalTypeAnnotation dateLogicalType) {
              return of(SortOrder.SIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.EnumLogicalTypeAnnotation enumLogicalType) {
              return of(SortOrder.UNSIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.BsonLogicalTypeAnnotation bsonLogicalType) {
              return of(SortOrder.UNSIGNED);
            }

            @Override
            public Optional<SortOrder> visit(UUIDLogicalTypeAnnotation uuidLogicalType) {
              return of(SortOrder.UNSIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.JsonLogicalTypeAnnotation jsonLogicalType) {
              return of(SortOrder.UNSIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.StringLogicalTypeAnnotation stringLogicalType) {
              return of(SortOrder.UNSIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.Float16LogicalTypeAnnotation float16LogicalType) {
              return of(SortOrder.SIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.UnknownLogicalTypeAnnotation unknownLogicalTypeAnnotation) {
              return of(SortOrder.UNKNOWN);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.DecimalLogicalTypeAnnotation decimalLogicalType) {
              return of(SortOrder.UNKNOWN);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.MapKeyValueTypeAnnotation mapKeyValueLogicalType) {
              return of(SortOrder.UNKNOWN);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.MapLogicalTypeAnnotation mapLogicalType) {
              return of(SortOrder.UNKNOWN);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.ListLogicalTypeAnnotation listLogicalType) {
              return of(SortOrder.UNKNOWN);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.TimeLogicalTypeAnnotation timeLogicalType) {
              return of(SortOrder.SIGNED);
            }

            @Override
            public Optional<SortOrder> visit(
                LogicalTypeAnnotation.TimestampLogicalTypeAnnotation timestampLogicalType) {
              return of(SortOrder.SIGNED);
            }
          })
          .orElse(defaultSortOrder(primitive.getPrimitiveTypeName()));
    }

    return defaultSortOrder(primitive.getPrimitiveTypeName());
  }