Sets a new value for a given configuration parameter.

        If it already exists, an Exception is thrown.
        To overwrite an existing value, set overwrite to True.

        :param name: Unique name of the parameter
        :param value: Value of the configuration parameter
        :param overwrite: If true, an existing parameter of *name* gets overwritten without warning or exception.
        :type overwrite: boolean

def set(self, name, value, overwrite=False):
        """
        Sets a new value for a given configuration parameter.

        If it already exists, an Exception is thrown.
        To overwrite an existing value, set overwrite to True.

        :param name: Unique name of the parameter
        :param value: Value of the configuration parameter
        :param overwrite: If true, an existing parameter of *name* gets overwritten without warning or exception.
        :type overwrite: boolean
        """
        if hasattr(self, name):
            if overwrite:
                setattr(self, name, value)
            else:
                self._log.warning("Configuration parameter %s exists and overwrite not allowed" % name)
                raise Exception("Configuration parameter %s exists and overwrite not allowed" % name)
        else:
            setattr(self, name, value)
        return getattr(self, name)