'This function is responsible for validating arguments.
@type return_bool: bool
@param return_bool: True when we are only interested in the result of the
validation, and not the validated rule itself.
@type valid_rule: bool
@param valid_rule: returns True if everything is valid. False if it encounters any
abnormalities in the config.
@type original_rule: dict
@param original_rule: contains the original received rule
@type counter: int
@param counter: this counter is used to identify what rule # is currently being
validated. Necessary for log output.
@type tool: str
@param tool: the name of the current tool. Necessary for log output.
@rtype: bool/None, dict (tuple)
@return: validated rule (or None if invalid) and result of validation'

@classmethod
def __validate_arguments(cls, valid_rule, return_bool, rule, tool, counter):

    if (('arguments' not in rule) or (not isinstance(rule['arguments'], dict))):
        error = (('No    arguments    found    for    rule    ' + str(counter)) + "    in    '")
        error += (str(tool) + "'    despite    being    of    type    arguments.")
        if (not return_bool):
            error += '    Ignoring    rule.'
            rule = None
        if verbose:
            log.debug(error)
        valid_rule = False
    return (valid_rule, rule)
