public function overwrite($container)
    {
        $originalValue = $this->getValue();
        $newValue = $container->getValue();

        if (is_null($newValue)) {
            $resultValue = $originalValue;
        } elseif (is_array($newValue) && is_array($originalValue)) {
            $resultValue = array_replace_recursive($originalValue, $newValue);
        } else {
            $resultValue = $newValue;
        }

        $this->setValue($resultValue);

        return $this;
    }