Ejemplo n.º 1
0
 /**
  * @param PointerInterface $pointer
  * @param string           $atom
  * @param ObjectValue      $value
  *
  * @return ValueInterface|null
  */
 protected function resolveObject(PointerInterface $pointer, $atom, ObjectValue $value)
 {
     if (!$value->has($atom)) {
         return null;
     }
     return $value->get($atom);
 }
Ejemplo n.º 2
0
 /**
  * @param Value\ObjectValue $value
  *
  * @return ArrayValue\ItemsConstraint|null
  */
 protected function createItemsConstraint(Value\ObjectValue $value)
 {
     if (!$value->has('items') && !$value->has('additionalItems')) {
         return null;
     }
     $schemas = array();
     $additionalSchema = null;
     if ($value->has('items')) {
         if ($value->get('items') instanceof Value\ArrayValue) {
             foreach ($value->get('items') as $subValue) {
                 $schemas[] = $this->createSchema($subValue);
             }
         } else {
             $additionalSchema = $this->createSchema($value->get('items'));
         }
     }
     if (null === $additionalSchema && $value->has('additionalItems')) {
         if ($value->get('additionalItems') instanceof Value\BooleanValue) {
             if (!$value->getRaw('additionalItems')) {
                 $additionalSchema = new Schema(array(new ArrayValue\AdditionalItemConstraint()));
             }
         } else {
             $additionalSchema = $this->createSchema($value->get('additionalItems'));
         }
     }
     if (null === $additionalSchema) {
         $additionalSchema = new Schema();
     }
     return new ArrayValue\ItemsConstraint($schemas, $additionalSchema);
 }