SensioLabs\Deptrac\Collector\BoolCollector::satisfy PHP Method

satisfy() public method

public satisfy ( array $configuration, SensioLabs\AstRunner\AstParser\AstClassReferenceInterface $abstractClassReference, SensioLabs\AstRunner\AstMap $astMap, CollectorFactory $collectorFactory, SensioLabs\AstRunner\AstParser\AstParserInterface $astParser )
$configuration array
$abstractClassReference SensioLabs\AstRunner\AstParser\AstClassReferenceInterface
$astMap SensioLabs\AstRunner\AstMap
$collectorFactory SensioLabs\Deptrac\CollectorFactory
$astParser SensioLabs\AstRunner\AstParser\AstParserInterface
    public function satisfy(array $configuration, AstClassReferenceInterface $abstractClassReference, AstMap $astMap, CollectorFactory $collectorFactory, AstParserInterface $astParser)
    {
        if (!isset($configuration['must'])) {
            $configuration['must'] = [];
        }
        if (!isset($configuration['must_not'])) {
            $configuration['must_not'] = [];
        }
        if (!$configuration['must'] && !$configuration['must_not']) {
            throw new \InvalidArgumentException('bool collector must have a must or a must_not attribute');
        }
        foreach ($configuration['must'] as $v) {
            $configurationForCollector = ConfigurationCollector::fromArray($v);
            if (!$collectorFactory->getCollector($configurationForCollector->getType())->satisfy($configurationForCollector->getArgs(), $abstractClassReference, $astMap, $collectorFactory, $astParser)) {
                return false;
            }
        }
        foreach ($configuration['must_not'] as $v) {
            $configurationForCollector = ConfigurationCollector::fromArray($v);
            if ($collectorFactory->getCollector($configurationForCollector->getType())->satisfy($configurationForCollector->getArgs(), $abstractClassReference, $astMap, $collectorFactory, $astParser)) {
                return false;
            }
        }
        return true;
    }
BoolCollector