Sets the cognitive process.

        arg:    gradeId (osid.id.Id): the new cognitive process
        raise:  INVALID_ARGUMENT - gradeId is invalid
        raise:  NoAccess - gradeId cannot be modified
        raise:  NullArgument - gradeId is null
        compliance: mandatory - This method must be implemented.

def set_cognitive_process(self, grade_id=None):
        """Sets the cognitive process.

        arg:    gradeId (osid.id.Id): the new cognitive process
        raise:  INVALID_ARGUMENT - gradeId is invalid
        raise:  NoAccess - gradeId cannot be modified
        raise:  NullArgument - gradeId is null
        compliance: mandatory - This method must be implemented.

        """
        if grade_id is None:
            raise NullArgument()
        metadata = Metadata(**settings.METADATA['cognitive_process_id'])
        if metadata.is_read_only():
            raise NoAccess()
        if self._is_valid_input(grade_id, metadata, array=False):
            self._my_map['cognitiveProcessId'] = str(grade_id)
        else:
            raise InvalidArgument