@@ 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)) { |