|
@@ 114-135 (lines=22) @@
|
| 111 |
|
} |
| 112 |
|
} |
| 113 |
|
|
| 114 |
|
private function walkORTerm($term, SearchParams $parentSearchParams, $statement = false) { |
| 115 |
|
if ($statement && !in_array($statement, ['must', 'should', 'must_not', 'should_not'])) { |
| 116 |
|
throw new InvalidParamsException(sprintf( |
| 117 |
|
"Parameter \$boolOptionInsert must be 'must' or 'should', got '%s'", $statement |
| 118 |
|
)); |
| 119 |
|
} |
| 120 |
|
|
| 121 |
|
$childSearchParams = clone $parentSearchParams; |
| 122 |
|
$parentBody = $parentSearchParams->getBody(); |
| 123 |
|
$childSearchParams->setBody([]); |
| 124 |
|
|
| 125 |
|
if (is_array($term) && !empty($term)) { |
| 126 |
|
$this->walkTermsAndFactors($term, $childSearchParams); |
| 127 |
|
} else if ($term instanceof Node) { |
| 128 |
|
$this->walkConditionalPrimary($term, $childSearchParams); |
| 129 |
|
} |
| 130 |
|
|
| 131 |
|
if (!empty($childSearchParams->getBody())) { |
| 132 |
|
$this->walkerHelper->addSubQueryStatement($childSearchParams->getBody(), $parentBody, 'should'); |
| 133 |
|
$parentSearchParams->setBody($parentBody); |
| 134 |
|
} |
| 135 |
|
} |
| 136 |
|
|
| 137 |
|
private function walkANDFactor($factor, SearchParams $parentSearchParams, $statement = false) { |
| 138 |
|
if ($statement && !in_array($statement, ['must', 'should', 'must_not', 'should_not'])) { |
|
@@ 137-158 (lines=22) @@
|
| 134 |
|
} |
| 135 |
|
} |
| 136 |
|
|
| 137 |
|
private function walkANDFactor($factor, SearchParams $parentSearchParams, $statement = false) { |
| 138 |
|
if ($statement && !in_array($statement, ['must', 'should', 'must_not', 'should_not'])) { |
| 139 |
|
throw new InvalidParamsException(sprintf( |
| 140 |
|
"Parameter \$boolOptionInsert must be 'must' or 'should', got '%s'", $statement |
| 141 |
|
)); |
| 142 |
|
} |
| 143 |
|
|
| 144 |
|
$childSearchParams = clone $parentSearchParams; |
| 145 |
|
$parentBody = $parentSearchParams->getBody(); |
| 146 |
|
$childSearchParams->setBody([]); |
| 147 |
|
|
| 148 |
|
if (is_array($factor) && !empty($factor)) { |
| 149 |
|
$this->walkTermsAndFactors($factor, $childSearchParams); |
| 150 |
|
} else if ($factor instanceof Node) { |
| 151 |
|
$this->walkConditionalPrimary($factor, $childSearchParams); |
| 152 |
|
} |
| 153 |
|
|
| 154 |
|
if (!empty($childSearchParams->getBody())) { |
| 155 |
|
$this->walkerHelper->addSubQueryStatement($childSearchParams->getBody(), $parentBody, 'must'); |
| 156 |
|
$parentSearchParams->setBody($parentBody); |
| 157 |
|
} |
| 158 |
|
} |
| 159 |
|
|
| 160 |
|
private function walkConditionalPrimary(Node $node, SearchParams $searchParams) { |
| 161 |
|
switch (get_class($node)) { |