def add_operation_recorder(self, operation_recorder):
        # pylint: disable=line-too-long
        """
        **Experimental:** Add an operation recorder to this connection.

        *New in pywbem 0.12 as experimental.*

        If the connection already has a recorder with the same class, the
        request to add the recorder is ignored.

        Parameters:

          operation_recorder (:class:`~pywbem.BaseOperationRecorder` subclass object):
            The operation recorder to be added. Must not be `None`.

        Raises:

          ValueError: Operation recorder must not be `None`.
          ValueError: Cannot add the same recorder class multiple times.
        """  # noqa: E501
        if operation_recorder is None:
            raise ValueError("Invalid value None for new operation recorder")

        for recorder in self._operation_recorders:
            # pylint: disable=unidiomatic-typecheck
            if type(recorder) is type(operation_recorder):
                raise ValueError(
                    _format("Cannot add the same operation recorder class {0} "
                            "multiple times to the same connection",
                            type(operation_recorder)))
        self._operation_recorders.append(operation_recorder)

        operation_recorder.reset()
        operation_recorder.stage_wbem_connection(self)
**Experimental:** Add an operation recorder to this connection.

        *New in pywbem 0.12 as experimental.*

        If the connection already has a recorder with the same class, the
        request to add the recorder is ignored.

        Parameters:

          operation_recorder (:class:`~pywbem.BaseOperationRecorder` subclass object):
            The operation recorder to be added. Must not be `None`.

        Raises:

          ValueError: Operation recorder must not be `None`.
          ValueError: Cannot add the same recorder class multiple times.