parquet-column/src/main/java/org/apache/parquet/internal/column/columnindex/OffsetIndexBuilder.java
public OffsetIndex build(long firstPageOffset) {
    if (compressedPageSizes.isEmpty()) {
      return null;
    }
    long[] offsets = this.offsets.toLongArray();
    if (firstPageOffset != 0) {
      for (int i = 0, n = offsets.length; i < n; ++i) {
        offsets[i] += firstPageOffset;
      }
    }
    OffsetIndexImpl offsetIndex = new OffsetIndexImpl();
    offsetIndex.offsets = offsets;
    offsetIndex.compressedPageSizes = compressedPageSizes.toIntArray();
    offsetIndex.firstRowIndexes = firstRowIndexes.toLongArray();

    return offsetIndex;
  }
public OffsetIndex build(long firstPageOffset) {
    if (compressedPageSizes.isEmpty()) {
      return null;
    }
    long[] offsets = this.offsets.toLongArray();
    if (firstPageOffset != 0) {
      for (int i = 0, n = offsets.length; i < n; ++i) {
        offsets[i] += firstPageOffset;
      }
    }
    OffsetIndexImpl offsetIndex = new OffsetIndexImpl();
    offsetIndex.offsets = offsets;
    offsetIndex.compressedPageSizes = compressedPageSizes.toIntArray();
    offsetIndex.firstRowIndexes = firstRowIndexes.toLongArray();

    return offsetIndex;
  }
public OffsetIndex build ( long firstPageOffset ) { if ( compressedPageSizes . isEmpty ( ) ) { return null ; } long [ ] offsets = this . offsets . toLongArray ( ) ; if ( firstPageOffset != 0 ) { for ( int i = 0 , n = offsets . length ; i < n ; ++ i ) { offsets [ i ] += firstPageOffset ; } } OffsetIndexImpl offsetIndex = new OffsetIndexImpl ( ) ; offsetIndex . offsets = offsets ; offsetIndex . compressedPageSizes = compressedPageSizes . toIntArray ( ) ; offsetIndex . firstRowIndexes = firstRowIndexes . toLongArray ( ) ; return offsetIndex ; }
Builds the offset index. Used by the writers to building up {@link OffsetIndex} objects to be
written to the Parquet file.

@param firstPageOffset
the actual offset in the file to be used to translate all the collected offsets
@return the newly created offset index or {@code null} if the {@link OffsetIndex} object would be empty
Builds the offset index . Used by the writers to building up { @link OffsetIndex } objects to be written to the Parquet file .