/** * Преобразует спецификацию в условие выборки * * @param ConverterInterface $converter * @param SpecificationInterface $specification * @return Condition\Condition[] */ public function convert(ConverterInterface $converter, SpecificationInterface $specification) : array { if (!$specification instanceof ConditionProviderInterface) { return $converter->convert($converter, $specification); } return $specification->getConditions(); }
/** * Преобразует спецификацию в условие выборки * * @param ConverterInterface $converter * @param SpecificationInterface $specification * @return Condition\Condition[] */ public function convert(ConverterInterface $converter, SpecificationInterface $specification) : array { if (!$specification instanceof ReverseSpecification) { return $converter->convert($converter, $specification); } $conditions = []; foreach ($converter->convert($converter, $specification->getSpecification()) as $condition) { $conditions[] = Condition\Condition::reverse($condition); } return $conditions; }
/** * Преобразует спецификацию в условие выборки * * @param ConverterInterface $converter * @param SpecificationInterface $specification * @return Condition\Condition[] */ public function convert(ConverterInterface $converter, SpecificationInterface $specification) : array { if (!$specification instanceof AggregateSpecification) { return $converter->convert($converter, $specification); } $conditions = []; foreach ($specification->getSpecifications() as $specification) { foreach ($converter->convert($converter, $specification) as $condition) { $conditions[] = $condition; } } return $conditions; }