summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/sdk/Trace/Behavior/UsesSpanConverterTrait.php
blob: 4802cd15b6a22a88c7c460f6f59abd35bf96ea19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

declare(strict_types=1);

namespace OpenTelemetry\SDK\Trace\Behavior;

use OpenTelemetry\SDK\Trace\SpanConverterInterface;
use OpenTelemetry\SDK\Trace\SpanDataInterface;
use OpenTelemetry\SDK\Trace\SpanExporter\NullSpanConverter;

trait UsesSpanConverterTrait
{
    private ?SpanConverterInterface $converter = null;

    /**
     * @param SpanConverterInterface $converter
     */
    protected function setSpanConverter(SpanConverterInterface $converter): void
    {
        $this->converter = $converter;
    }

    public function getSpanConverter(): SpanConverterInterface
    {
        if (null === $this->converter) {
            $this->converter = new NullSpanConverter();
        }

        return $this->converter;
    }

    /**
     * @param SpanDataInterface $span
     * @return array
     * @psalm-suppress PossiblyNullReference
     */
    protected function convertSpan(SpanDataInterface $span): array
    {
        return $this->getSpanConverter()->convert([$span]);
    }
}