private void fill()

in parquet-column/src/main/java/org/apache/parquet/internal/column/columnindex/ColumnIndexBuilder.java [672:725]


  private void fill(
      List<Boolean> nullPages,
      List<Long> nullCounts,
      List<ByteBuffer> minValues,
      List<ByteBuffer> maxValues,
      List<Long> repLevelHistogram,
      List<Long> defLevelHistogram) {
    clear();
    int pageCount = nullPages.size();
    if ((nullCounts != null && nullCounts.size() != pageCount)
        || minValues.size() != pageCount
        || maxValues.size() != pageCount) {
      throw new IllegalArgumentException(String.format(
          "Not all sizes are equal (nullPages:%d, nullCounts:%s, minValues:%d, maxValues:%d",
          nullPages.size(),
          nullCounts == null ? "null" : nullCounts.size(),
          minValues.size(),
          maxValues.size()));
    }
    if (repLevelHistogram != null && repLevelHistogram.size() % pageCount != 0) {
      /// FIXME: it is unfortunate that we don't know the max repetition level here.
      throw new IllegalArgumentException(String.format(
          "Size of repLevelHistogram:%d is not a multiply of pageCount:%d, ",
          repLevelHistogram.size(), pageCount));
    }
    if (defLevelHistogram != null && defLevelHistogram.size() % pageCount != 0) {
      /// FIXME: it is unfortunate that we don't know the max definition level here.
      throw new IllegalArgumentException(String.format(
          "Size of defLevelHistogram:%d is not a multiply of pageCount:%d, ",
          defLevelHistogram.size(), pageCount));
    }
    this.nullPages.addAll(nullPages);
    // Nullcounts is optional in the format
    if (nullCounts != null) {
      this.nullCounts.addAll(nullCounts);
    }

    for (int i = 0; i < pageCount; ++i) {
      if (!nullPages.get(i)) {
        ByteBuffer min = minValues.get(i);
        ByteBuffer max = maxValues.get(i);
        addMinMaxFromBytes(min, max);
        pageIndexes.add(i);
      }
    }

    // Repetition and definition level histograms are optional in the format
    if (repLevelHistogram != null) {
      this.repLevelHistogram.addAll(repLevelHistogram);
    }
    if (defLevelHistogram != null) {
      this.defLevelHistogram.addAll(defLevelHistogram);
    }
  }