protected function convertParamValueToString($propertyName)
    {
        $abstractParamClass = static::BASE_PARAM_CLASS;

        // use the property if it exists in the getDefaultValue() method of the Request Type -> Param class
        // for example, for a Data request, this looks in JasonRoman\NbaApi\Params\Data\<Property>Param
        $requestTypeParamClass = $abstractParamClass::getRequestTypeParamClass(
            $this::getDomain(),
            $propertyName
        );

        // make sure the class exists and is an instance of the base param class
        if (
            class_exists($requestTypeParamClass) &&
            is_subclass_of($requestTypeParamClass, $abstractParamClass) &&
            method_exists($requestTypeParamClass, static::CONVERT_TO_STRING_METHOD)
        ) {
            return $requestTypeParamClass::{static::CONVERT_TO_STRING_METHOD}($this->$propertyName);
        }

        // use the property if it exists in the getDefaultValue() method of the base Param class
        // for example, for a Data request, this looks in JasonRoman\NbaApi\Params\<Property>Param
        $paramClass = $abstractParamClass::getParamClass($propertyName);

        // make sure the class exists and is an instance of the base param class
        if (
            class_exists($paramClass) &&
            is_subclass_of($paramClass, $abstractParamClass) &&
            method_exists($paramClass, static::CONVERT_TO_STRING_METHOD)
        ) {
            return $paramClass::{static::CONVERT_TO_STRING_METHOD}($this->$propertyName);
        }

        // if got here, no specific param class exists, so just cast to string using the request property utility
        return RequestPropertyUtility::getStringValue($this->$propertyName);
    }