Пример #1
0
 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();
 }
Пример #2
0
 public function resolve()
 {
     if ($this->firstParameter instanceof Part) {
         $this->firstParameter->resolve();
     }
     if ($this->lastParameter instanceof Part) {
         $this->lastParameter->resolve();
     }
     parent::resolve();
 }