protected function setOptionalValueInArray(string $name, &$values)
    {
        if ($this->isOptional($name) && !array_key_exists($name, $values)) {
            $default = $this->getFieldProperty($name, 'default');

            if (is_null($default)) {
                $type = $this->getFieldProperty($name, 'type');

                switch ($type) {
                    case 'list':
                        $default = array();
                        break;
                    case 'bool':
                        $default = false;
                        break;
                }
            }

            $values[$name] = $default;
        }

        return $this;
    }