private ArrayList<OrcStripeMetadata> readStripesMetadata(
      boolean[] includes, boolean[] sargColumns) throws IOException {
    ArrayList<OrcStripeMetadata> result = new ArrayList<OrcStripeMetadata>(stripeRgs.length);
    boolean hasFileId = this.fileKey != null;
    OrcBatchKey stripeKey = hasFileId ? new OrcBatchKey(fileKey, 0, 0) : null;
    for (int stripeIxMod = 0; stripeIxMod < stripeRgs.length; ++stripeIxMod) {
      int stripeIx = stripeIxMod + stripeIxFrom;
      stripeKey.stripeIx = stripeIx;
      StripeInformation si = fileMetadata.getStripes().get(stripeIx);
      OrcProto.StripeFooter footer = getStripeFooterFromCacheOrDisk(si, stripeKey);
      OrcStripeMetadata osm = createOrcStripeMetadataObject(
          stripeIx, si, footer, includes, sargColumns);

      ensureDataReader();
      OrcIndex index = osm.getIndex();
      stripeReader.readIndexStreams(index, si, footer.getStreamsList(), includes, sargColumns);
      result.add(osm);
      consumer.setStripeMetadata(osm);
    }
    return result;
  }
Reads the metadata for all stripes in the file.
llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java