/** * {@inheritDoc} */ public function guessType($object, $name, $classes) { $discriminants = []; $required = $object->getRequired() ?: []; foreach ($object->getProperties() as $key => $property) { if (!in_array($key, $required)) { continue; } if ($property instanceof Reference) { $property = $this->resolver->resolve($property); } if ($property->getEnum() !== null) { $isSimple = true; foreach ($property->getEnum() as $value) { if (is_array($value) || is_object($value)) { $isSimple = false; } } if ($isSimple) { $discriminants[$key] = $property->getEnum(); } } else { $discriminants[$key] = null; } } return new ObjectType($object, $this->naming->getClassName($name), $discriminants); }