Checks that tasks parameters exist in the task and are of the right type. Runs before the task is run.
        :return: None
        :raises TaskValidationError: the task parameter is missing or invalid.

def _check_ui_parameters(self):
        """
        Checks that tasks parameters exist in the task and are of the right type. Runs before the task is run.
        :return: None
        :raises TaskValidationError: the task parameter is missing or invalid.
        """
        if isinstance(self.PARAMETER_UI_STUFF, dict):
            for param in self.PARAMETER_UI_STUFF.keys():
                # check parameter value can be found
                if not hasattr(self, param) and not hasattr(Task, param):
                    raise TaskValidationError('task "{}" defines parameter "{}" but a task attribute with that name '
                                              'could not be found'.format(self.NAME, param))

                # parameter cannot be None if not explicitly allowed
                if (getattr(self, param) is None
                    and (KEY_NONE_ALLOWED not in self.PARAMETER_UI_STUFF[param]
                         or not self.PARAMETER_UI_STUFF[param][KEY_NONE_ALLOWED])):
                    raise TaskValidationError('parameter "{}" is None and None is not explicitly allowed'
                                              ''.format(param))