code: private void processPageMetadata(int bitOffset, List<SubheaderPointer> subheaderPointers)
              throws IOException {
          subheaderPointers.clear();
          for (int subheaderPointerIndex = 0; subheaderPointerIndex < currentPageSubheadersCount;
               subheaderPointerIndex++) {
              SubheaderPointer currentSubheaderPointer = processSubheaderPointers((long) bitOffset
                      + SUBHEADER_POINTERS_OFFSET, subheaderPointerIndex);
              subheaderPointers.add(currentSubheaderPointer);
              if (currentSubheaderPointer.compression != TRUNCATED_SUBHEADER_ID) {
                  long subheaderSignature = readSubheaderSignature(currentSubheaderPointer.offset);
                  SubheaderIndexes subheaderIndex = chooseSubheaderClass(subheaderSignature,
                          currentSubheaderPointer.compression, currentSubheaderPointer.type);
                  if (subheaderIndex != null) {
                      if (subheaderIndex != SubheaderIndexes.DATA_SUBHEADER_INDEX) {
                          LOGGER.debug(SUBHEADER_PROCESS_FUNCTION_NAME, subheaderIndex);
                          subheaderIndexToClass.get(subheaderIndex).processSubheader(
                                  subheaderPointers.get(subheaderPointerIndex).offset,
                                  subheaderPointers.get(subheaderPointerIndex).length);
                      } else {
                          currentPageDataSubheaderPointers.add(subheaderPointers.get(subheaderPointerIndex));
                      }
                  } else {
                      LOGGER.debug(UNKNOWN_SUBHEADER_SIGNATURE);
                  }
              }
          }
      }
docs: The method to parse and read metadata of a page, used for pages of the {@link SasFileConstants#PAGE_META_TYPE_1}
  {@link SasFileConstants#PAGE_META_TYPE_1}, and {@link SasFileConstants#PAGE_MIX_TYPE} types. The method goes
  through subheaders, one by one, and calls the processing functions depending on their signatures.
  
  @param bitOffset         the offset from the beginning of the page at which the page stores its metadata.
  @param subheaderPointers the number of subheaders on the page.
  @throws IOException if reading from the {@link SasFileParser#sasFileStream} string is impossible.