File Information
Library: Data
Package: DataCore
Header: Poco/Data/RowFilter.h
Description
RowFilter class provides row filtering functionality. A filter contains a set of criteria (field name, value and logical operation) for row filtering. Additionally, a row filter contains a map of pointers to other filters with related logical operations between filters. RowFilter is typically added to recordset in order to filter its content. Since the recordset own iteration is dependent upon filtering, whenever the filtering criteria is changed, the filter automatically notifies all associated recordsets by rewinding them to the first position.
Inheritance
Direct Base Classes: Poco::RefCountedObject
All Base Classes: Poco::RefCountedObject
Member Summary
Member Functions: add, addAnd, addFilter, addOr, exists, has, isAllowed, isEmpty, isNot, remove, removeFilter, toggleNot
Inherited Functions: duplicate, referenceCount, release
Types
CompT
typedef bool (* CompT)(const Poco::Dynamic::Var &, const Poco::Dynamic::Var &);
Types Aliases
ComparisonEntry
using ComparisonEntry = Tuple < Poco::Dynamic::Var, Comparison, LogicOperator >;
ComparisonMap
using ComparisonMap = std::multimap < std::string, ComparisonEntry >;
Comparisons
using Comparisons = std::map < std::string, Comparison >;
FilterMap
using FilterMap = std::map < AutoPtr < RowFilter >, LogicOperator >;
Ptr
using Ptr = AutoPtr < RowFilter >;
Enumerations
Comparison
LogicOperator
Constructors
RowFilter
RowFilter(
    RecordSet * pRecordSet
);
Creates the top-level RowFilter and associates it with the recordset.
RowFilter
RowFilter(
    Ptr pParent,
    LogicOperator op = OP_OR
);
Creates child RowFilter and associates it with the parent filter.
Destructor
~RowFilter 
 
~RowFilter();
Destroys the RowFilter.
Member Functions
add 
 
template < typename T > void add(
    const std::string & name,
    Comparison comparison,
    const T & value,
    LogicOperator op = OP_OR
);
Adds value to the filter.
add 
 
template < typename T > void add(
    const std::string & name,
    const std::string & comp,
    const T & value,
    LogicOperator op = OP_OR
);
Adds value to the filter.
addAnd 
 
template < typename T > void addAnd(
    const std::string & name,
    const std::string & comp,
    const T & value
);
Adds logically AND-ed value to the filter.
addFilter
void addFilter(
    Ptr pFilter,
    LogicOperator comparison
);
Appends another filter to this one.
addOr 
 
template < typename T > void addOr(
    const std::string & name,
    const std::string & comp,
    const T & value
);
Adds logically OR-ed value to the filter.
exists 
 
bool exists(
    const std::string & name
) const;
Returns true if name is known to this row filter.
has 
 
bool has(
    Ptr pFilter
) const;
Returns true if this filter is parent of pFilter;
isAllowed
bool isAllowed(
    std::size_t row
) const;
Returns true if name and value are allowed.
isEmpty 
 
bool isEmpty() const;
Returns true if there is not filtering criteria specified.
isNot 
 
bool isNot() const;
Returns true if filter is NOT-ed, false otherwise.
remove
int remove(
    const std::string & name
);
Removes named comparisons from the filter. All comparisons with specified name are removed. Returns the number of comparisons removed.
removeFilter
void removeFilter(
    Ptr pFilter
);
Removes filter from this filter.
toggleNot 
 
void toggleNot();
Togless the NOT operator for this filter;