public function addParam(
        string $name,
        string $type = null,
        bool $is_def = false,
        $def_value = null,
        string $comment_type = null,
        string $comment = null
    ) : bool {
        $param = array('name' => $name);
        if ($type !== null) {
            $param['type'] = $type;
        }

        if ($is_def) {
            $param['default'] = ($type === 'bool' && $def_value === null ? false : $def_value);
        }

        if ($comment_type !== null) {
            $param['comment_type'] = $comment_type;
        }

        if ($comment !== null) {
            $param['comment'] = $comment;
        }

        $retval = false;

        if (!array_key_exists($name, $this->params)) {
            $this->params[$name] = $param;
            $retval = true;
        }

        return $retval;
    }