Skip to content

Commit 5781245

Browse files
committed
Replace ClassMetadata discriminators accessor to property
1 parent 1f80ee3 commit 5781245

File tree

4 files changed

+13
-50
lines changed

4 files changed

+13
-50
lines changed

src/Mapping/Driver/AttributeDriver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,11 @@ class: $reflection,
165165
);
166166
}
167167

168-
$class->setDiscriminator(new DiscriminatorMapMetadata(
168+
$class->discriminator = new DiscriminatorMapMetadata(
169169
field: $attribute->field,
170170
map: $mapping,
171171
default: $default,
172-
));
172+
);
173173
}
174174
}
175175

src/Mapping/Metadata/ClassMetadata.php

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@ final class ClassMetadata extends Metadata
3939
public ?bool $isNormalizeAsArray = null;
4040

4141
/**
42-
* Contains a {@see DiscriminatorMapMetadata} instance in case of class-like
43-
* contains a discriminator map.
42+
* Gets {@see DiscriminatorMapMetadata} information about a class
43+
* discriminator map, or returns {@see null} if no such metadata has been
44+
* registered in the {@see ClassMetadata} instance.
4445
*/
45-
private ?DiscriminatorMapMetadata $discriminator;
46+
public ?DiscriminatorMapMetadata $discriminator;
4647

4748
/**
4849
* @param iterable<array-key, PropertyMetadata> $properties
@@ -161,38 +162,4 @@ public function getProperties(): array
161162
{
162163
return \array_values($this->properties);
163164
}
164-
165-
/**
166-
* Returns {@see DiscriminatorMapMetadata} information about a class
167-
* discriminator map, or returns {@see null} if no such metadata has been
168-
* registered in the {@see ClassMetadata} instance.
169-
*
170-
* @api
171-
*/
172-
public function findDiscriminator(): ?DiscriminatorMapMetadata
173-
{
174-
return $this->discriminator;
175-
}
176-
177-
/**
178-
* Returns {@see true} if the {@see DiscriminatorMapMetadata} information
179-
* was registered in the {@see ClassMetadata} and {@see false} otherwise.
180-
*
181-
* @api
182-
*/
183-
public function hasDiscriminator(): bool
184-
{
185-
return $this->discriminator !== null;
186-
}
187-
188-
/**
189-
* Updates {@see DiscriminatorMapMetadata} information about a class
190-
* discriminator map.
191-
*
192-
* @api
193-
*/
194-
public function setDiscriminator(?DiscriminatorMapMetadata $discriminator): void
195-
{
196-
$this->discriminator = $discriminator;
197-
}
198165
}

src/Type/ClassType/ClassTypeDenormalizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public function cast(mixed $value, Context $context): mixed
107107
);
108108
}
109109

110-
$discriminator = $this->metadata->findDiscriminator();
110+
$discriminator = $this->metadata->discriminator;
111111

112112
if ($discriminator !== null) {
113113
return $this->castOverDiscriminator($discriminator, $value, $context);

tests/Mapping/Metadata/ClassMetadataTest.php

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ public function testConstructorInitializesPropertiesDiscriminatorAndTimestamp():
2525
self::assertTrue($m->hasProperty('b'));
2626
self::assertSame($propA, $m->findProperty('a'));
2727
self::assertSame($propB, $m->findProperty('b'));
28-
self::assertTrue($m->hasDiscriminator());
29-
self::assertSame($disc, $m->findDiscriminator());
28+
self::assertSame($disc, $m->discriminator);
3029
self::assertSame(777, $m->getTimestamp());
3130
}
3231

@@ -83,17 +82,14 @@ public function testGetPropertyOrCreate(): void
8382
public function testDiscriminatorManagement(): void
8483
{
8584
$m = new ClassMetadata(\stdClass::class);
86-
self::assertFalse($m->hasDiscriminator());
87-
self::assertNull($m->findDiscriminator());
85+
self::assertNull($m->discriminator);
8886

8987
$disc = new DiscriminatorMapMetadata('kind');
90-
$m->setDiscriminator($disc);
88+
$m->discriminator = $disc;
9189

92-
self::assertTrue($m->hasDiscriminator());
93-
self::assertSame($disc, $m->findDiscriminator());
90+
self::assertSame($disc, $m->discriminator);
9491

95-
$m->setDiscriminator(null);
96-
self::assertFalse($m->hasDiscriminator());
97-
self::assertNull($m->findDiscriminator());
92+
$m->discriminator = null;
93+
self::assertNull($m->discriminator);
9894
}
9995
}

0 commit comments

Comments
 (0)