* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class IntersectionResolver { /** @var DefinitionsInterface */ private $definitions; public function __construct(DefinitionsInterface $definitions) { $this->definitions = $definitions; } /** * If the provided property is an allOf schema it tries to merge all * contained sub schemas into a new schema which contains all properties * * @param IntersectionType $type * @return StructType|null */ public function resolve(IntersectionType $type): ?StructType { $items = $type->getAllOf(); if (empty($items)) { return null; } $newType = new StructType(); foreach ($items as $item) { $this->merge($newType, $item); } return $newType; } private function merge(StructType $left, TypeInterface $right) { if ($right instanceof ReferenceType) { $right = $this->definitions->getType($right->getRef()); } if (!$right instanceof StructType) { throw new \InvalidArgumentException('All of must contain only struct types'); } if ($right->getTitle()) { $left->setTitle($right->getTitle()); } if ($right->getDescription()) { $left->setDescription($right->getDescription()); } foreach ($right->getProperties() as $name => $type) { $left->addProperty($name, $type); } return $left; } } __halt_compiler();----SIGNATURE:----vcIPxnxKS/UAoh4Z3HPczn4OEfvql0TAnbLH5vx2QXjBju6CXMmz9wRJos4hox9+dhiacEiNqL1VoW8WF4kDUTNKZbV35wGVhaNNA/sHnGezVjJGJZpn8KlFLC4aIWyJpFh9BJihA0aAiIkbUn4JX3JtdfeYgNiWXEwz4ND4S3BFxRKIMNlZCMhJdFTy6pYOqsvVM3CtkiKxyYnmkDi83iDtQ3X+P+9tlMNstYa5NVqfgTmVbR694hNdMOSUzuSJc5qt3FXMTmHU8WL7KEMW/LL9Fm1DgUD29KbTmOvK4FCoh6GnC/Efs9+W24A41hx64z1dhgUqMHopUceq1Is7M+9mUw6EhFCNGaILYJbSwFftVrPPrUM6aHHBjJEUljDkE2XRFX9AdgYagwkPrpKyHz9okk0GeuV5s2zRUVBedCnd6wC0xTEyyAD1j2mf4F25x4jp4+LpOJG9jRtNcdiukqx0JMPk9dVm6kiqQtZClZcNYlbBKX1mGH489ntQEOG8FnKWlumeWi6Sj/0K7kKPCBoqMoG2e5efR9YxS4BRp2lY5O5AwZM99lRWnZmShzQtq61bBMJV7aR0FFfOGYwxh9j97JzGyS94KAsolz0I8rn9MKnhfdD9t0/pvy5960cPpWb/VftvwYpnZZqxWpHSof85XZT5DJByxZ5GcJpWvVA=----ATTACHMENT:----MzY1NjkzMDEyOTQ2MTgxMyA5NjE2OTk4NjM5MDMxNDcwIDYwODU2MjU3NjAzNzYwMTY=