*/ private array $events; /** @var list */ private array $links; private AttributesInterface $attributes; private int $totalRecordedEvents; private StatusDataInterface $status; private int $endEpochNanos; private bool $hasEnded; /** * @param non-empty-string $name * @param list $links * @param list $events */ public function __construct( Span $span, string $name, array $links, array $events, AttributesInterface $attributes, int $totalRecordedEvents, StatusDataInterface $status, int $endEpochNanos, bool $hasEnded ) { $this->span = $span; $this->name = $name; $this->links = $links; $this->events = $events; $this->attributes = $attributes; $this->totalRecordedEvents = $totalRecordedEvents; $this->status = $status; $this->endEpochNanos = $endEpochNanos; $this->hasEnded = $hasEnded; } public function getKind(): int { return $this->span->getKind(); } public function getContext(): API\SpanContextInterface { return $this->span->getContext(); } public function getParentContext(): API\SpanContextInterface { return $this->span->getParentContext(); } public function getTraceId(): string { return $this->getContext()->getTraceId(); } public function getSpanId(): string { return $this->getContext()->getSpanId(); } public function getParentSpanId(): string { return $this->getParentContext()->getSpanId(); } public function getStartEpochNanos(): int { return $this->span->getStartEpochNanos(); } public function getEndEpochNanos(): int { return $this->endEpochNanos; } public function getInstrumentationScope(): InstrumentationScopeInterface { return $this->span->getInstrumentationScope(); } public function getResource(): ResourceInfo { return $this->span->getResource(); } public function getName(): string { return $this->name; } /** @inheritDoc */ public function getLinks(): array { return $this->links; } /** @inheritDoc */ public function getEvents(): array { return $this->events; } public function getAttributes(): AttributesInterface { return $this->attributes; } public function getTotalDroppedEvents(): int { return max(0, $this->totalRecordedEvents - count($this->events)); } public function getTotalDroppedLinks(): int { return max(0, $this->span->getTotalRecordedLinks() - count($this->links)); } public function getStatus(): StatusDataInterface { return $this->status; } public function hasEnded(): bool { return $this->hasEnded; } }