final protected function get_format_parameters($property) {
        $parameters = [
            'component' => null,
            'filearea' => null,
            'itemid' => null,
            'options' => [],
            'striplinks' => true,
        ];

        $candidate = 'get_format_parameters_for_' . $property;
        if (method_exists($this, $candidate)) {
            $parameters = array_merge($parameters, $this->{$candidate}());
        }

        if (!isset($parameters['context'])) {
            if (!isset($this->related['context']) || !($this->related['context'] instanceof context)) {
                throw new coding_exception("Unknown context to use for formatting the property '$property' in the " .
                    "exporter '" . get_class($this) . "'. You either need to add 'context' to your related objects, " .
                    "or create the method '$candidate' and return the context from there.");
            }
            $parameters['context'] = $this->related['context'];

        } else if (!($parameters['context'] instanceof context)) {
            throw new coding_exception("The context given to format the property '$property' in the exporter '" .
                get_class($this) . "' is invalid.");
        }

        return $parameters;
    }