protected function getAttributeValue(object
$object, string
$attribute, string
$format = null, array
$context =
[]): mixed
{ $cacheKey =
$object::
class;
if (!\
array_key_exists($cacheKey,
$this->discriminatorCache
)) { $this->discriminatorCache
[$cacheKey] = null;
if (null !==
$this->classDiscriminatorResolver
) { $mapping =
$this->classDiscriminatorResolver->
getMappingForMappedObject($object);
$this->discriminatorCache
[$cacheKey] =
$mapping?->
getTypeProperty();
} } return $attribute ===
$this->discriminatorCache
[$cacheKey] ?
$this->classDiscriminatorResolver->
getTypeForMappedObject($object) :
$this->propertyAccessor->
getValue($object,
$attribute);
} /**
* @return void
*/
protected function setAttributeValue(object
$object, string
$attribute, mixed
$value, string
$format = null, array
$context =
[]) { try { $this->propertyAccessor->
setValue($object,
$attribute,
$value);
} catch (NoSuchPropertyException
) { // Properties not found are ignored