public function resolve() { $lastIndex = count($this->chain) - 1; do { $this->chain = array_values($this->chain); foreach ($this->chain as $index => $chainValue) { if ($chainValue instanceof ConditionJob) { if (!$chainValue->hasLastParameter() && $index < $lastIndex) { $parameter = $this->chain[$index + 1]; unset($this->chain[$index + 1]); $chainValue->setLastParameter($parameter); continue 2; } if (!$chainValue->hasFirstParameter() && $index > 0) { $parameter = $this->chain[$index - 1]; unset($this->chain[$index - 1]); $chainValue->setFirstParameter($parameter); continue 2; } } if ($chainValue instanceof Part) { $chainValue->resolve(); } } break; } while (true); parent::resolve(); }
public function resolve() { if ($this->firstParameter instanceof Part) { $this->firstParameter->resolve(); } if ($this->lastParameter instanceof Part) { $this->lastParameter->resolve(); } parent::resolve(); }