tool_config; } /** * Sets the tool configuration. * * @since 0.7.0 * * @param Tool_Config $tool_config The tool configuration. */ final protected function set_tool_config( Tool_Config $tool_config ): void { $this->tool_config = $tool_config; } /** * Sets the tool configuration if provided in the `toolConfig` model parameter. * * @since 0.7.0 * * @param array $model_params The model parameters. * * @throws InvalidArgumentException Thrown if the `toolConfig` model parameter is invalid. */ protected function set_tool_config_from_model_params( array $model_params ): void { if ( ! isset( $model_params['toolConfig'] ) ) { return; } if ( is_array( $model_params['toolConfig'] ) ) { $model_params['toolConfig'] = Tool_Config::from_array( $model_params['toolConfig'] ); } if ( ! $model_params['toolConfig'] instanceof Tool_Config ) { throw new InvalidArgumentException( sprintf( 'Invalid toolConfig model parameter: The value must be an array or an instance of %s.', Tool_Config::class ) ); } $this->set_tool_config( $model_params['toolConfig'] ); } }