'This function is responsible for passing each rule to its relevant function.
@type rule_type: str
@param rule_type: the current rule\'s type
@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.
@rtype: bool, dict (depending on return_bool)
@return: validated rule or result of validation (depending on return_bool)'

@classmethod
def validate_rule(cls, rule_type, return_bool=False, *args, **kwargs):

    if (rule_type == 'file_size'):
        return cls.__validate_file_size_rule(return_bool, *args, **kwargs)
    elif (rule_type == 'num_input_datasets'):
        return cls.__validate_num_input_datasets_rule(return_bool, *args, **kwargs)
    elif (rule_type == 'records'):
        return cls.__validate_records_rule(return_bool, *args, **kwargs)
    elif (rule_type == 'arguments'):
        return cls.__validate_arguments_rule(return_bool, *args, **kwargs)
