![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/jms/serializer/src/Exclusion/ |
<?php declare(strict_types=1); namespace JMS\Serializer\Exclusion; use JMS\Serializer\Context; use JMS\Serializer\Metadata\ClassMetadata; use JMS\Serializer\Metadata\PropertyMetadata; /** * Disjunct Exclusion Strategy. * * This strategy is short-circuiting and will skip a class, or property as soon as one of the delegates skips it. * * @author Johannes M. Schmitt <[email protected]> */ final class DisjunctExclusionStrategy implements ExclusionStrategyInterface { /** * @var ExclusionStrategyInterface[] */ private $delegates; /** * @param ExclusionStrategyInterface[] $delegates */ public function __construct(array $delegates = []) { $this->delegates = $delegates; } public function addStrategy(ExclusionStrategyInterface $strategy): void { $this->delegates[] = $strategy; } /** * Whether the class should be skipped. */ public function shouldSkipClass(ClassMetadata $metadata, Context $context): bool { foreach ($this->delegates as $delegate) { \assert($delegate instanceof ExclusionStrategyInterface); if ($delegate->shouldSkipClass($metadata, $context)) { return true; } } return false; } /** * Whether the property should be skipped. */ public function shouldSkipProperty(PropertyMetadata $property, Context $context): bool { foreach ($this->delegates as $delegate) { \assert($delegate instanceof ExclusionStrategyInterface); if ($delegate->shouldSkipProperty($property, $context)) { return true; } } return false; } }