<?php
namespace Symfony\Component\Serializer\Attribute;
use Symfony\Component\Serializer\Exception\InvalidArgumentException;
class DiscriminatorMap
{
public function __construct(
public readonly string $typeProperty,
public readonly array $mapping,
public readonly ?string $defaultType = null,
) {
if (!$typeProperty) {
throw new InvalidArgumentException(\sprintf('Parameter "typeProperty" given to "%s" cannot be empty.', static::class));
}
if (!$mapping) {
throw new InvalidArgumentException(\sprintf('Parameter "mapping" given to "%s" cannot be empty.', static::class));
}
if (null !== $this->defaultType && !\array_key_exists($this->defaultType, $this->mapping)) {
throw new InvalidArgumentException(\sprintf('Default type "%s" given to "%s" must be present in "mapping" types.', $this->defaultType, static::class));
}
}
public function getTypeProperty(): string
{
return $this->typeProperty;
}
public function getMapping(): array
{
return $this->mapping;
}
public function getDefaultType(): ?string
{
return $this->defaultType;
}
}
if (!class_exists(\Symfony\Component\Serializer\Annotation\DiscriminatorMap::class, false)) {
class_alias(DiscriminatorMap::class, \Symfony\Component\Serializer\Annotation\DiscriminatorMap::class);
}