'Add a filter with post-processing required.
Args:
identifier: property being compared.
condition: comparison operation being used with the property (e.g. !=).
operator: operation to perform on the parameters before adding the filter.
parameters: list of bound parameters passed to \'operator\' before creating
the filter. When using the parameters as a pass-through, pass \'nop\'
into the operator field and the first value will be used unprocessed).
Returns:
True if the filter was okay to add.'

def __AddProcessedParameterFilter(self, identifier, condition, operator, parameters):

    if (parameters is None):
        return False
    if (parameters[0] is None):
        return False
    logging.log(LOG_LEVEL, 'Adding    Filter    %s    %s    %s', identifier, condition, repr(parameters))
    filter_rule = (identifier, condition)
    if (identifier.lower() == 'ancestor'):
        self.__has_ancestor = True
        filter_rule = (self.__ANCESTOR, 'is')
        assert (condition.lower() == 'is')
    if ((operator == 'list') and (condition.lower() != 'in')):
        self.__Error('Only    IN    can    process    a    list    of    values')
    self.__filters.setdefault(filter_rule, []).append((operator, parameters))
    return True
