vendor/api-platform/core/src/Metadata/Link.php line 17
<?php/** This file is part of the API Platform project.** (c) Kévin Dunglas <[email protected]>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/declare(strict_types=1);namespace ApiPlatform\Metadata;#[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::TARGET_PARAMETER)]final class Link{private $parameterName;private $fromProperty;private $toProperty;private $fromClass;private $toClass;private $identifiers;private $compositeIdentifier;private $expandedValue;public function __construct(string $parameterName = null, string $fromProperty = null, string $toProperty = null, string $fromClass = null, string $toClass = null, array $identifiers = null, bool $compositeIdentifier = null, string $expandedValue = null){// For the inverse property shortcutif ($parameterName && class_exists($parameterName)) {$this->fromClass = $parameterName;} else {$this->parameterName = $parameterName;}$this->fromClass = $fromClass;$this->toClass = $toClass;$this->fromProperty = $fromProperty;$this->toProperty = $toProperty;$this->identifiers = $identifiers;$this->compositeIdentifier = $compositeIdentifier;$this->expandedValue = $expandedValue;}public function getParameterName(): ?string{return $this->parameterName;}public function withParameterName(string $parameterName): self{$self = clone $this;$self->parameterName = $parameterName;return $self;}public function getFromClass(): ?string{return $this->fromClass;}public function withFromClass(string $fromClass): self{$self = clone $this;$self->fromClass = $fromClass;return $self;}public function getToClass(): ?string{return $this->toClass;}public function withToClass(string $toClass): self{$self = clone $this;$self->toClass = $toClass;return $self;}public function getFromProperty(): ?string{return $this->fromProperty;}public function withFromProperty(string $fromProperty): self{$self = $this;$self->fromProperty = $fromProperty;return $self;}public function getToProperty(): ?string{return $this->toProperty;}public function withToProperty(string $toProperty): self{$self = clone $this;$self->toProperty = $toProperty;return $self;}public function getIdentifiers(): ?array{return $this->identifiers;}public function withIdentifiers(array $identifiers): self{$self = clone $this;$self->identifiers = $identifiers;return $self;}public function getCompositeIdentifier(): ?bool{return $this->compositeIdentifier;}public function withCompositeIdentifier(bool $compositeIdentifier): self{$self = clone $this;$self->compositeIdentifier = $compositeIdentifier;return $self;}public function getExpandedValue(): ?string{return $this->expandedValue;}public function withExpandedValue(string $expandedValue): self{$self = clone $this;$self->expandedValue = $expandedValue;return $self;}public function withLink(self $link): self{$self = clone $this;if (!$self->getToProperty() && ($toProperty = $link->getToProperty())) {$self->toProperty = $toProperty;}if (!$self->getCompositeIdentifier() && ($compositeIdentifier = $link->getCompositeIdentifier())) {$self->compositeIdentifier = $compositeIdentifier;}if (!$self->getFromClass() && ($fromClass = $link->getFromClass())) {$self->fromClass = $fromClass;}if (!$self->getToClass() && ($toClass = $link->getToClass())) {$self->toClass = $toClass;}if (!$self->getIdentifiers() && ($identifiers = $link->getIdentifiers())) {$self->identifiers = $identifiers;}if (!$self->getFromProperty() && ($fromProperty = $link->getFromProperty())) {$self->fromProperty = $fromProperty;}if (!$self->getParameterName() && ($parameterName = $link->getParameterName())) {$self->parameterName = $parameterName;}if (!$self->getExpandedValue() && ($expandedValue = $link->getExpandedValue())) {$self->expandedValue = $expandedValue;}return $self;}}