public function with(Parameter $parameter): self
    {
        $key = $parameter->getKey();

        $clone = clone $this;
        if (false === $clone->has($key)) {
            $clone->parameters[$key] = $parameter->getValue();
        }

        return $clone;
    }
public function with(Parameter $parameter): self
    {
        $key = $parameter->getKey();

        $clone = clone $this;
        if (false === $clone->has($key)) {
            $clone->parameters[$key] = $parameter->getValue();
        }

        return $clone;
    }
public function with ( Parameter $ parameter ) : self { $ key = $ parameter -> getKey ( ) ; $ clone = clone $ this ; if ( false === $ clone -> has ( $ key ) ) { $ clone -> parameters [ $ key ] = $ parameter -> getValue ( ) ; } return $ clone ; }
Returns a new instance which will include the passed parameter. If a parameter with that key already exist, it
WILL NOT be overridden.
Returns a new instance which will include the passed parameter . If a parameter with that key already exist it WILL NOT be overridden .