if (null !==
$types =
$this->propertyTypeExtractor->
getTypes($currentClass,
$attribute)) { return $this->typesCache
[$key] =
$types;
} if (null !==
$this->classDiscriminatorResolver && null !==
$discriminatorMapping =
$this->classDiscriminatorResolver->
getMappingForClass($currentClass)) { if ($discriminatorMapping->
getTypeProperty() ===
$attribute) { return $this->typesCache
[$key] =
[ new Type(Type::BUILTIN_TYPE_STRING
),
];
} foreach ($discriminatorMapping->
getTypesMapping() as $mappedClass) { if (null !==
$types =
$this->propertyTypeExtractor->
getTypes($mappedClass,
$attribute)) { return $this->typesCache
[$key] =
$types;
} } } $this->typesCache
[$key] = false;
return null;
}