in tsfile-viewer-web/src/main/java/org/apache/iotdb/ui/service/TsfileViewerService.java [703:741]
public List<ITITreeNode> getIndexOfTimeseriesIndexList(
Long parentOffset, String filePath, QueryByTimeseriesIndexReq req)
throws InterruptedException, TsfileViewerException {
filePath = getFullPath(filePath);
TsFileAnalyserV13 parse = tsfileViewerContainer.getTsfileParser(filePath);
TimeSeriesMetadataNode root = parse.getTimeSeriesMetadataNode();
List<ITITreeNode> itiTreeNodes = new ArrayList<>();
List<TimeSeriesMetadataNode> childrenNode;
if (parentOffset == null || parentOffset == 0) {
childrenNode = root.getChildren();
} else {
childrenNode = fetchChildrenByParentOffset(root, parentOffset);
}
final int[] i = {0};
Optional.ofNullable(childrenNode)
.ifPresent(
timeSeriesMetadataNodes -> {
List<ITITreeNode> result =
timeSeriesMetadataNodes.stream()
.map(
node -> {
ITITreeNode itiTreeNode = new ITITreeNode(node);
if (itiTreeNode.getDeviceId() == null
&& itiTreeNode.getMeasurementId() == null) {
itiTreeNode.setTitle(
itiTreeNode.getNodeType().toString() + "[" + i[0] + "]");
i[0]++;
} else if (itiTreeNode.getMeasurementId() != null) {
itiTreeNode.setTitle(itiTreeNode.getMeasurementId());
} else if (itiTreeNode.getDeviceId() != null) {
itiTreeNode.setTitle(itiTreeNode.getDeviceId());
}
return itiTreeNode;
})
.collect(Collectors.toList());
itiTreeNodes.addAll(result);
});
return itiTreeNodes;
}