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