/**
  * Resolve parameters.
  */
 public function resolve()
 {
     if (true === $this->resolved) {
         return;
     }
     $parameters = array();
     foreach ($this->parameter->all() as $name => $value) {
         try {
             $name = $this->resolveString($name);
             $value = $this->resolveValue($value);
             $parameters[$name] = $this->unescapeValue($value);
         } catch (ParameterNotFoundException $e) {
             $e->setSource($name);
             throw $e;
         }
     }
     $this->parameter->replace($parameters);
     $this->resolved = true;
 }
 /**
  * Compile parameter.
  *
  * Parameter become immutable.
  *
  * @return static
  */
 public function compile()
 {
     $this->parameter->getResolver()->resolve();
     $this->parameter = new ImmutableParameterBag($this->parameter->all());
     return $this;
 }