/**
  * Преобразует спецификацию в условие выборки
  *
  * @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();
 }
Example #2
0
 /**
  * Преобразует спецификацию в условие выборки
  *
  * @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;
 }
Example #3
0
 /**
  * Преобразует спецификацию в условие выборки
  *
  * @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;
 }