/** * {@inheritDoc} */ public function guessType($object, $name, $classes) { $type = new MultipleType($object); foreach ($object->getOneOf() as $oneOf) { $type->addType($this->chainGuesser->guessType($oneOf, $name, $classes)); } return $type; }
/** * {@inheritdoc} */ public function guessType($object, $name, $classes) { $typeGuess = new MultipleType($object); $fakeSchema = clone $object; foreach ($object->getType() as $type) { $fakeSchema->setType($type); $typeGuess->addType($this->chainGuesser->guessType($fakeSchema, $name, $classes)); } return $typeGuess; }
/** * {@inheritDoc} */ public function guessType($object, $name, $classes) { if (count($object->getAnyOf()) == 1) { return $this->chainGuesser->guessType($object->getAnyOf()[0], $name, $classes); } $type = new MultipleType($object); foreach ($object->getAnyOf() as $anyOfObject) { $type->addType($this->chainGuesser->guessType($anyOfObject, $name, $classes)); } return $type; }
/** * {@inheritDoc} */ public function guessType($object, $name, $classes) { $items = $object->getItems(); if ($items === null) { return new ArrayType($object, new Type($object, 'mixed')); } if (!is_array($items)) { return new ArrayType($object, $this->chainGuesser->guessType($items, $name, $classes)); } $type = new MultipleType($object); foreach ($items as $item) { $type->addType(new ArrayType($object, $this->chainGuesser->guessType($item, $name, $classes))); } return $type; }
/** * {@inheritDoc} */ public function guessType($object, $name, $classes) { $type = null; foreach ($this->guessers as $guesser) { if (!$guesser instanceof TypeGuesserInterface) { continue; } if ($guesser->supportObject($object)) { if ($type === null) { $type = $guesser->guessType($object, $name, $classes); continue; } if (!$type instanceof MultipleType) { $type = new MultipleType($object, [$type]); } $type->addType($guesser->guessType($object, $name, $classes)); } } if ($type === null) { return new Type($object, 'mixed'); } return $type; }