public List fetchPageInfoListByIChunkMetadata()

in tsfile-viewer-core/src/main/java/org/apache/iotdb/tool/core/service/TsFileAnalyserV13.java [605:635]


  public List<IPageInfo> fetchPageInfoListByIChunkMetadata(IChunkMetadata iChunkMetadata)
      throws IOException, InterruptedException {
    countDownLatch.await();
    List<IPageInfo> pageInfoList = new ArrayList<>();
    if (iChunkMetadata instanceof AlignedChunkMetadata) {
      AlignedChunkMetadata alignedChunkMetadata = (AlignedChunkMetadata) iChunkMetadata;
      IChunkMetadata timeChunkMetadata = alignedChunkMetadata.getTimeChunkMetadata();
      List<IChunkMetadata> valueChunkMetadatas = alignedChunkMetadata.getValueChunkMetadataList();
      List<IPageInfo> timePageInfoList = fetchPageInfoListByChunkMetadata(timeChunkMetadata);
      List<List<IPageInfo>> valuePageInfosList = new ArrayList<>();
      for (IChunkMetadata valueChunkMetadata : valueChunkMetadatas) {
        List<IPageInfo> valuePageInfoList = fetchPageInfoListByChunkMetadata(valueChunkMetadata);
        valuePageInfosList.add(valuePageInfoList);
      }
      // 合并timePageInfo和valuePageInfo
      for (int i = 0; i < timePageInfoList.size(); i++) {
        AlignedPageInfo alignedPageInfos = new AlignedPageInfo();
        alignedPageInfos.setTimePageInfo(timePageInfoList.get(i));
        List<IPageInfo> valuePageInfoList = new ArrayList<>();
        for (List<IPageInfo> iPageInfos : valuePageInfosList) {
          valuePageInfoList.add(iPageInfos.get(i));
        }
        alignedPageInfos.setValuePageInfoList(valuePageInfoList);
        pageInfoList.add(alignedPageInfos);
      }

    } else {
      pageInfoList = fetchPageInfoListByChunkMetadata(iChunkMetadata);
    }
    return pageInfoList;
  }