Inheritance: extends Joli\Jane\Guesser\Guess\Type
示例#1
0
 /**
  * {@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;
 }
示例#2
0
 /**
  * {@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;
 }
示例#3
0
 /**
  * {@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;
 }
示例#4
0
 /**
  * {@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;
 }
示例#5
0
 /**
  * {@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;
 }