public CompletableResultCode export()

in universal-profiling-integration/src/main/java/co/elastic/otel/hostid/ProfilerHostIdApplyingSpanExporter.java [38:68]


  public CompletableResultCode export(Collection<SpanData> collection) {
    // do a pre-check to avoid unnecessary allocations
    boolean anyUpdatesRequired =
        collection.stream()
            .anyMatch(
                data ->
                    data.getResource()
                        != ProfilerHostIdResourceUpdater.applyHostId(data.getResource()));
    Collection<SpanData> updatedSpanData = collection;
    if (anyUpdatesRequired) {
      updatedSpanData =
          collection.stream()
              .map(
                  data -> {
                    Resource original = data.getResource();
                    Resource updated = ProfilerHostIdResourceUpdater.applyHostId(original);
                    if (original != updated) {
                      return new DelegatingSpanData(data) {
                        @Override
                        public Resource getResource() {
                          return updated;
                        }
                      };
                    } else {
                      return data;
                    }
                  })
              .collect(Collectors.toList());
    }
    return delegate.export(updatedSpanData);
  }