%PDF- %PDF-
Direktori : /var/www/projetos/suporte.iigd.com.br/vendor/swaggest/json-schema/src/Structure/ |
Current File : /var/www/projetos/suporte.iigd.com.br/vendor/swaggest/json-schema/src/Structure/ObjectItemTrait.php |
<?php namespace Swaggest\JsonSchema\Structure; use Swaggest\JsonSchema\MagicMapTrait; /** * Trait ObjectItemTrait * @package Swaggest\JsonSchema\Structure * @see ObjectItemContract */ trait ObjectItemTrait { use MagicMapTrait; /** @var ObjectItemContract[] */ protected $__nestedObjects; protected $__documentPath; /** @var null|string[] */ protected $__fromRef; protected $__hasResolvedValue = false; protected $__resolvedValue; public function setResolvedValue($value) { $this->__hasResolvedValue = true; $this->__resolvedValue = $value; return $this; } public function getResolvedValue() { return $this->__resolvedValue; } public function hasResolvedValue() { return $this->__hasResolvedValue; } public function getNestedObject($className) { if (isset($this->__nestedObjects[$className])) { return $this->__nestedObjects[$className]; } return null; } public function setNestedProperty($propertyName, $value, Egg $nestedEgg) { $nestedName = $nestedEgg->name; /** @var null $nested */ $nested = &$this->__nestedObjects[$nestedName]; if (null === $nested) { $nested = $nestedEgg->classSchema->makeObjectItem(); $this->__nestedObjects[$nestedName] = $nested; if ($nestedName !== $nestedEgg->classSchema->getObjectItemClass()) { $this->$nestedName = $nested; } } $nested->$propertyName = $value; $this->__arrayOfData[$propertyName] = &$nested->$propertyName; } protected $__additionalPropertyNames; public function addAdditionalPropertyName($name) { $this->__additionalPropertyNames[$name] = true; } /** * @return string[] */ public function getAdditionalPropertyNames() { if (null === $this->__additionalPropertyNames) { return []; } return array_keys($this->__additionalPropertyNames); } /** * @var string[][] */ protected $__patternPropertyNames; public function addPatternPropertyName($pattern, $name) { $this->__patternPropertyNames[$pattern][$name] = true; } /** * @param string $pattern * @return null|string[] */ public function getPatternPropertyNames($pattern) { if (isset($this->__patternPropertyNames[$pattern])) { return array_keys($this->__patternPropertyNames[$pattern]); } return null; } #[\ReturnTypeWillChange] public function jsonSerialize() { if ($this->__nestedObjects) { $result = $this->__arrayOfData; foreach ($this->__nestedObjects as $object) { foreach ($object->toArray() as $key => $value) { $result[$key] = $value; } } return (object)$result; } else { return (object)$this->__arrayOfData; } } /** * @return string */ public function getDocumentPath() { return $this->__documentPath; } public function setDocumentPath($path) { $this->__documentPath = $path; return $this; } /** * @return string|null * @deprecated use ObjectItemContract::getFromRefs * @see ObjectItemContract::getFromRefs * @todo remove * @see ObjectItemContract::getFromRef */ public function getFromRef() { return null === $this->__fromRef ? null : $this->__fromRef[0]; } /** * @return string[]|null * @see ObjectItemContract::getFromRef */ public function getFromRefs() { return $this->__fromRef; } /** * @param false|string $ref * @return $this * @see ObjectItemContract::setFromRef */ public function setFromRef($ref) { if (null === $this->__fromRef) { $this->__fromRef = array($ref); } else { if (false !== $this->__fromRef[0]) { $this->__fromRef[] = $ref; } } return $this; } private $__refPath; protected function getFromRefPath() { if ($this->__refPath === null) { $this->__refPath = ''; if ($this->__fromRef) { foreach ($this->__fromRef as $ref) { if ($ref) { $this->__refPath = '->$ref[' . strtr($ref, array('~' => '~1', ':' => '~2')) . ']' . $this->__refPath; } } } } return $this->__refPath; } }