@@ 279-300 (lines=22) @@ | ||
276 | * |
|
277 | * @SuppressWarnings(PHPMD.StaticAccess) |
|
278 | */ |
|
279 | private static function executeAndBlock( |
|
280 | $input, |
|
281 | int $blockIndex, |
|
282 | array $blocks, |
|
283 | ContextStorageInterface $context, |
|
284 | CaptureAggregatorInterface $captures |
|
285 | ): array { |
|
286 | $block = $blocks[$blockIndex]; |
|
287 | assert(static::getBlockType($block) === BlockSerializer::TYPE__AND_EXPRESSION); |
|
288 | ||
289 | $primaryIndex = $block[BlockSerializer::AND_EXPRESSION_PRIMARY]; |
|
290 | $result = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures); |
|
291 | if (BlockReplies::isResultSuccessful($result) === true) { |
|
292 | $nextInput = BlockReplies::extractResultOutput($result); |
|
293 | $secondaryIndex = $block[BlockSerializer::AND_EXPRESSION_SECONDARY]; |
|
294 | $result = static::executeBlockImpl($nextInput, $secondaryIndex, $blocks, $context, $captures); |
|
295 | } |
|
296 | ||
297 | static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures); |
|
298 | ||
299 | return $result; |
|
300 | } |
|
301 | ||
302 | /** |
|
303 | * @param mixed $input |
|
@@ 314-336 (lines=23) @@ | ||
311 | * @SuppressWarnings(PHPMD.StaticAccess) |
|
312 | * @SuppressWarnings(PHPMD.ElseExpression) |
|
313 | */ |
|
314 | private static function executeOrBlock( |
|
315 | $input, |
|
316 | int $blockIndex, |
|
317 | array $blocks, |
|
318 | ContextStorageInterface $context, |
|
319 | CaptureAggregatorInterface $captures |
|
320 | ): array { |
|
321 | $block = $blocks[$blockIndex]; |
|
322 | assert(static::getBlockType($block) === BlockSerializer::TYPE__OR_EXPRESSION); |
|
323 | ||
324 | $primaryIndex = $block[BlockSerializer::OR_EXPRESSION_PRIMARY]; |
|
325 | $resultFromPrimary = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures); |
|
326 | if (BlockReplies::isResultSuccessful($resultFromPrimary) === true) { |
|
327 | $result = $resultFromPrimary; |
|
328 | } else { |
|
329 | $secondaryIndex = $block[BlockSerializer::OR_EXPRESSION_SECONDARY]; |
|
330 | $result = static::executeBlockImpl($input, $secondaryIndex, $blocks, $context, $captures); |
|
331 | } |
|
332 | ||
333 | static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures); |
|
334 | ||
335 | return $result; |
|
336 | } |
|
337 | ||
338 | /** |
|
339 | * @param array $serializedBlocks |