/** * @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); }
/** * @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); }