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