31 #ifndef LEDGER_CORE_QUERYFILTER_H 32 #define LEDGER_CORE_QUERYFILTER_H 34 #include <api/QueryFilter.hpp> 40 enum class QueryFilterOperator {
41 OP_AND, OP_OR, OP_AND_NOT, OP_OR_NOT
46 std::shared_ptr<QueryFilter> previous;
47 std::shared_ptr<QueryFilter> next;
48 QueryFilterOperator op;
53 std::shared_ptr<api::QueryFilter> op_and(
const std::shared_ptr<api::QueryFilter> &filter)
override;
54 std::shared_ptr<api::QueryFilter> op_or(
const std::shared_ptr<api::QueryFilter> &filter)
override;
55 std::shared_ptr<api::QueryFilter> op_and_not(
const std::shared_ptr<api::QueryFilter> &filter)
override;
56 std::shared_ptr<api::QueryFilter> op_or_not(
const std::shared_ptr<api::QueryFilter> &filter)
override;
58 virtual std::string toString()
const {
63 virtual void toString(std::stringstream& ss)
const = 0;
64 virtual void bindValue(soci::details::prepare_temp_type& statement)
const = 0;
65 int32_t getSiblingsCount()
const;
66 std::shared_ptr<QueryFilter> getHead()
const;
67 std::shared_ptr<QueryFilter> getTail()
const;
71 std::shared_ptr<QueryFilter> getNext()
const;
72 std::shared_ptr<QueryFilter> getPrevious()
const;
73 QueryFilterOperator getOperatorForNextFilter()
const;
76 std::shared_ptr<api::QueryFilter> link(
const std::shared_ptr<api::QueryFilter> &filter, QueryFilterOperator op);
85 #endif //LEDGER_CORE_QUERYFILTER_H Definition: QueryFilter.hpp:26
Definition: QueryFilter.h:45
Definition: QueryFilter.h:51
Definition: Account.cpp:8