private void leafNodeWithAligned()

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


    private void leafNodeWithAligned(
        TimeseriesMetadata alignedTime,
        List<TimeseriesMetadata> alignedValues,
        long pos,
        String deviceId,
        TimeSeriesMetadataNode tsNode,
        MetadataIndexNodeType type,
        Map<Long, Pair<Path, ITimeSeriesMetadata>> timeseriesMetadataMap) {
      if (alignedTime != null && alignedValues.size() > 0) {
        AlignedTimeSeriesMetadata alignedTimeSeriesMetadata =
            new AlignedTimeSeriesMetadata(alignedTime, new ArrayList<>(alignedValues));

        TimeSeriesMetadataNode leafNode = new TimeSeriesMetadataNode();
        leafNode.setChildren(new ArrayList<>());
        leafNode.setPosition(pos);
        leafNode.setDeviceId(deviceId);
        StringBuilder measureIds = new StringBuilder();
        for (TimeseriesMetadata valueMetadata : alignedValues) {
          valueMetadata.getMeasurementId();
          if (measureIds.length() == 0) {
            measureIds.append(valueMetadata.getMeasurementId());
          } else {
            measureIds.append(" || ").append(valueMetadata.getMeasurementId());
          }
        }
        leafNode.setMeasurementId(measureIds.toString());
        leafNode.setTimeseriesMetadata(alignedTimeSeriesMetadata);
        leafNode.setAligned(true);
        for (TimeseriesMetadata value : alignedValues) {
          if (value != null && value.getStatistics() != null) {
            allCount += value.getStatistics().getCount();
          }
        }

        timeseriesMetadataMap.put(
            pos, new Pair<>(new Path(deviceId, measureIds.toString()), alignedTimeSeriesMetadata));

        leafNode.setNodeType(type);
        tsNode.getChildren().add(leafNode);
        alignedValues.clear();
      }
    }