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;
}