def apply(self, q, bindings, cuts):
        """ Apply a set of filters, which can be given as a set of tuples in
        the form (ref, operator, value), or as a string in query form. If it
        is ``None``, no filter will be applied. """
        info = []
        for (ref, operator, value) in self.parse(cuts):
            if map_is_class and isinstance(value, map):
                value = list(value)
            self._check_type(ref, value)
            info.append({'ref': ref, 'operator': operator, 'value': value})
            table, column = self.cube.model[ref].bind(self.cube)
            bindings.append(Binding(table, ref))
            q = q.where(column.in_(value))
        return info, q, bindings