renamed condition_node_visitor to criteria_visitor.hpp and condition_operators to criteria_operators

This commit is contained in:
Sascha Kühl 2025-10-19 10:57:29 +02:00
parent 9dade562c7
commit afd1e0aef4
18 changed files with 61 additions and 61 deletions

View File

@ -5,16 +5,16 @@
namespace matador::criteria { namespace matador::criteria {
class condition_node_visitor; class criteria_visitor;
class abstract_criteria { class abstract_criteria {
public: public:
virtual ~abstract_criteria() = default; virtual ~abstract_criteria() = default;
virtual void accept(condition_node_visitor& visitor) const = 0; virtual void accept(criteria_visitor& visitor) const = 0;
}; };
using condition_node_ptr = std::unique_ptr<abstract_criteria>; using criteria_ptr = std::unique_ptr<abstract_criteria>;
} }
#endif //CRITERIA_CRITERIA_NODE_HPP #endif //CRITERIA_CRITERIA_NODE_HPP

View File

@ -12,7 +12,7 @@ public:
between_criteria() = delete; between_criteria() = delete;
between_criteria(column column, value min, value max); between_criteria(column column, value min, value max);
void accept(condition_node_visitor& visitor) const override; void accept(criteria_visitor& visitor) const override;
private: private:
column column_; column column_;

View File

@ -20,7 +20,7 @@ public:
binary_criteria() = delete; binary_criteria() = delete;
binary_criteria( column column, binary_operator operator_, value value ); binary_criteria( column column, binary_operator operator_, value value );
void accept( condition_node_visitor& visitor ) const override; void accept( criteria_visitor& visitor ) const override;
private: private:
column column_; column column_;

View File

@ -17,7 +17,7 @@ public:
collection_criteria(column col, collection_operator operator_, std::vector<value> values); collection_criteria(column col, collection_operator operator_, std::vector<value> values);
collection_criteria(column col, collection_operator operator_, std::initializer_list<value> values); collection_criteria(column col, collection_operator operator_, std::initializer_list<value> values);
void accept(condition_node_visitor& visitor) const override; void accept(criteria_visitor& visitor) const override;
private: private:
column column_; column column_;
collection_operator operator_; collection_operator operator_;

View File

@ -8,6 +8,6 @@
#include "logical_criteria.hpp" #include "logical_criteria.hpp"
#include "not_criteria.hpp" #include "not_criteria.hpp"
#include "condition_operators.hpp" #include "criteria_operators.hpp"
#endif //CRITERIA_CRITERIA_HPP #endif //CRITERIA_CRITERIA_HPP

View File

@ -8,43 +8,43 @@
namespace matador::criteria { namespace matador::criteria {
template<class Type> template<class Type>
condition_node_ptr operator==(const column &col, Type val) { criteria_ptr operator==(const column &col, Type val) {
return std::make_unique<binary_criteria>(col, binary_operator::EQUALS, val); return std::make_unique<binary_criteria>(col, binary_operator::EQUALS, val);
} }
template<class Type> template<class Type>
condition_node_ptr operator!=(const column &col, Type val) { criteria_ptr operator!=(const column &col, Type val) {
return std::make_unique<binary_criteria>(col, binary_operator::NOT_EQUALS, val); return std::make_unique<binary_criteria>(col, binary_operator::NOT_EQUALS, val);
} }
template<class Type> template<class Type>
condition_node_ptr operator>(const column &col, Type val) { criteria_ptr operator>(const column &col, Type val) {
return std::make_unique<binary_criteria>(col, binary_operator::GREATER_THAN, val); return std::make_unique<binary_criteria>(col, binary_operator::GREATER_THAN, val);
} }
template<class Type> template<class Type>
condition_node_ptr operator>=(const column &col, Type val) { criteria_ptr operator>=(const column &col, Type val) {
return std::make_unique<binary_criteria>(col, binary_operator::GREATER_THAN_OR_EQUAL, val); return std::make_unique<binary_criteria>(col, binary_operator::GREATER_THAN_OR_EQUAL, val);
} }
template<class Type> template<class Type>
condition_node_ptr operator<(const column &col, Type val) { criteria_ptr operator<(const column &col, Type val) {
return std::make_unique<binary_criteria>(col, binary_operator::LESS_THAN, val); return std::make_unique<binary_criteria>(col, binary_operator::LESS_THAN, val);
} }
template<class Type> template<class Type>
condition_node_ptr operator<=(const column &col, Type val) { criteria_ptr operator<=(const column &col, Type val) {
return std::make_unique<binary_criteria>(col, binary_operator::LESS_THAN_OR_EQUAL, val); return std::make_unique<binary_criteria>(col, binary_operator::LESS_THAN_OR_EQUAL, val);
} }
condition_node_ptr operator&&(condition_node_ptr left, condition_node_ptr right); criteria_ptr operator&&(criteria_ptr left, criteria_ptr right);
condition_node_ptr operator||(condition_node_ptr left, condition_node_ptr right); criteria_ptr operator||(criteria_ptr left, criteria_ptr right);
condition_node_ptr operator!(condition_node_ptr cond); criteria_ptr operator!(criteria_ptr clause);
template < class Type > template < class Type >
condition_node_ptr in(const column &col, std::initializer_list<Type> args) { criteria_ptr in(const column &col, std::initializer_list<Type> args) {
std::vector<value> values; std::vector<value> values;
for ( auto &&arg : args ) { for ( auto &&arg : args ) {
values.emplace_back(std::move(arg)); values.emplace_back(std::move(arg));
@ -53,7 +53,7 @@ condition_node_ptr in(const column &col, std::initializer_list<Type> args) {
} }
template < class V > template < class V >
condition_node_ptr out(const column &col, std::initializer_list<V> args) { criteria_ptr out(const column &col, std::initializer_list<V> args) {
std::vector<value> values; std::vector<value> values;
for ( auto &&arg : args ) { for ( auto &&arg : args ) {
values.emplace_back(std::move(arg)); values.emplace_back(std::move(arg));
@ -61,9 +61,9 @@ condition_node_ptr out(const column &col, std::initializer_list<V> args) {
return std::make_unique<collection_criteria>(col, collection_operator::OUT, values); return std::make_unique<collection_criteria>(col, collection_operator::OUT, values);
} }
condition_node_ptr between(const column &col, value min, value max); criteria_ptr between(const column &col, value min, value max);
condition_node_ptr like(const column &col, const std::string &pattern); criteria_ptr like(const column &col, const std::string &pattern);
} }
#endif //CRITERIA_CRITERIA_OPERATORS_HPP #endif //CRITERIA_CRITERIA_OPERATORS_HPP

View File

@ -9,9 +9,9 @@ class logical_criteria;
class not_criteria; class not_criteria;
class collection_criteria; class collection_criteria;
class condition_node_visitor { class criteria_visitor {
public: public:
virtual ~condition_node_visitor() = default; virtual ~criteria_visitor() = default;
virtual void visit(const between_criteria &node) = 0; virtual void visit(const between_criteria &node) = 0;
virtual void visit(const binary_criteria &node) = 0; virtual void visit(const binary_criteria &node) = 0;

View File

@ -10,7 +10,7 @@ public:
like_criteria() = delete; like_criteria() = delete;
like_criteria(column column, std::string pattern); like_criteria(column column, std::string pattern);
void accept(condition_node_visitor &visitor) const override; void accept(criteria_visitor &visitor) const override;
private: private:
column column_; column column_;

View File

@ -12,14 +12,14 @@ enum class logical_operator {
class logical_criteria final : public abstract_criteria { class logical_criteria final : public abstract_criteria {
public: public:
logical_criteria() = delete; logical_criteria() = delete;
logical_criteria(condition_node_ptr left, logical_operator op, condition_node_ptr right); logical_criteria(criteria_ptr left, logical_operator op, criteria_ptr right);
void accept(condition_node_visitor& visitor) const override; void accept(criteria_visitor& visitor) const override;
private: private:
std::unique_ptr<abstract_criteria> left_; std::unique_ptr<abstract_criteria> left_criteria_;
logical_operator op_; logical_operator operand_;
std::unique_ptr<abstract_criteria> right_; std::unique_ptr<abstract_criteria> right_criteria_;
}; };
} }
#endif //CRITERIA_LOGICAL_CRITERIA_NODE_HPP #endif //CRITERIA_LOGICAL_CRITERIA_NODE_HPP

View File

@ -6,12 +6,12 @@
namespace matador::criteria { namespace matador::criteria {
class not_criteria final : public abstract_criteria { class not_criteria final : public abstract_criteria {
public: public:
not_criteria(condition_node_ptr condition); explicit not_criteria(criteria_ptr clause);
void accept(condition_node_visitor& visitor) const override; void accept(criteria_visitor& visitor) const override;
private: private:
condition_node_ptr condition_; criteria_ptr criteria_;
}; };
} }

View File

@ -1,10 +1,11 @@
SET(SOURCE SET(SOURCE
../include/matador/criteria/abstract_criteria.hpp
../include/matador/criteria/between_criteria.hpp ../include/matador/criteria/between_criteria.hpp
../include/matador/criteria/collection_criteria.hpp ../include/matador/criteria/collection_criteria.hpp
../include/matador/criteria/column.hpp ../include/matador/criteria/column.hpp
../include/matador/criteria/condition_node_visitor.hpp ../include/matador/criteria/criteria.hpp
../include/matador/criteria/condition_operators.hpp ../include/matador/criteria/criteria_operators.hpp
../include/matador/criteria/abstract_criteria.hpp ../include/matador/criteria/criteria_visitor.hpp
../include/matador/criteria/like_criteria.hpp ../include/matador/criteria/like_criteria.hpp
../include/matador/criteria/logical_criteria.hpp ../include/matador/criteria/logical_criteria.hpp
../include/matador/criteria/types.hpp ../include/matador/criteria/types.hpp
@ -13,11 +14,10 @@ SET(SOURCE
criteria/binary_criteria.cpp criteria/binary_criteria.cpp
criteria/collection_criteria.cpp criteria/collection_criteria.cpp
criteria/column.cpp criteria/column.cpp
criteria/condition_operators.cpp criteria/criteria_operators.cpp
criteria/like_criteria.cpp criteria/like_criteria.cpp
criteria/logical_criteria.cpp criteria/logical_criteria.cpp
criteria/not_criteria.cpp criteria/not_criteria.cpp
../include/matador/criteria/criteria.hpp
) )
add_library(matador-criteria STATIC ${SOURCE}) add_library(matador-criteria STATIC ${SOURCE})

View File

@ -1,6 +1,6 @@
#include "matador/criteria/between_criteria.hpp" #include "matador/criteria/between_criteria.hpp"
#include "matador/criteria/condition_node_visitor.hpp" #include "matador/criteria/criteria_visitor.hpp"
namespace matador::criteria { namespace matador::criteria {
between_criteria::between_criteria( column column, value min, value max ) between_criteria::between_criteria( column column, value min, value max )
@ -9,7 +9,7 @@ between_criteria::between_criteria( column column, value min, value max )
, max_(std::move(max)) , max_(std::move(max))
{} {}
void between_criteria::accept( condition_node_visitor& visitor ) const { void between_criteria::accept( criteria_visitor& visitor ) const {
visitor.visit(*this); visitor.visit(*this);
} }
} }

View File

@ -1,6 +1,6 @@
#include "matador/criteria/binary_criteria.hpp" #include "matador/criteria/binary_criteria.hpp"
#include "matador/criteria/condition_node_visitor.hpp" #include "matador/criteria/criteria_visitor.hpp"
namespace matador::criteria { namespace matador::criteria {
binary_criteria::binary_criteria( column column, const binary_operator operator_, value value ) binary_criteria::binary_criteria( column column, const binary_operator operator_, value value )
@ -9,7 +9,7 @@ binary_criteria::binary_criteria( column column, const binary_operator operator_
, value_(std::move(value)) , value_(std::move(value))
{} {}
void binary_criteria::accept( condition_node_visitor& visitor ) const { void binary_criteria::accept( criteria_visitor& visitor ) const {
visitor.visit(*this); visitor.visit(*this);
} }
} }

View File

@ -1,6 +1,6 @@
#include "matador/criteria/collection_criteria.hpp" #include "matador/criteria/collection_criteria.hpp"
#include "matador/criteria/condition_node_visitor.hpp" #include "matador/criteria/criteria_visitor.hpp"
namespace matador::criteria { namespace matador::criteria {
collection_criteria::collection_criteria( column col, collection_operator operator_, std::vector<value> values ) collection_criteria::collection_criteria( column col, collection_operator operator_, std::vector<value> values )
@ -15,7 +15,7 @@ collection_criteria::collection_criteria(column col, const collection_operator o
, values_(values) , values_(values)
{} {}
void collection_criteria::accept( condition_node_visitor& visitor ) const { void collection_criteria::accept( criteria_visitor& visitor ) const {
visitor.visit(*this); visitor.visit(*this);
} }
} }

View File

@ -1,4 +1,4 @@
#include "matador/criteria/condition_operators.hpp" #include "matador/criteria/criteria_operators.hpp"
#include "matador/criteria/between_criteria.hpp" #include "matador/criteria/between_criteria.hpp"
#include "matador/criteria/like_criteria.hpp" #include "matador/criteria/like_criteria.hpp"
@ -6,23 +6,23 @@
#include "matador/criteria/not_criteria.hpp" #include "matador/criteria/not_criteria.hpp"
namespace matador::criteria { namespace matador::criteria {
condition_node_ptr operator&&(condition_node_ptr left, condition_node_ptr right) { criteria_ptr operator&&(criteria_ptr left, criteria_ptr right) {
return std::make_unique<logical_criteria>(std::move(left), logical_operator::AND, std::move(right)); return std::make_unique<logical_criteria>(std::move(left), logical_operator::AND, std::move(right));
} }
condition_node_ptr operator||(condition_node_ptr left, condition_node_ptr right) { criteria_ptr operator||(criteria_ptr left, criteria_ptr right) {
return std::make_unique<logical_criteria>(std::move(left), logical_operator::OR, std::move(right)); return std::make_unique<logical_criteria>(std::move(left), logical_operator::OR, std::move(right));
} }
condition_node_ptr operator!(condition_node_ptr cond) { criteria_ptr operator!(criteria_ptr clause) {
return std::make_unique<not_criteria>(std::move(cond)); return std::make_unique<not_criteria>(std::move(clause));
} }
condition_node_ptr between(const column &col, value min, value max) { criteria_ptr between(const column &col, value min, value max) {
return std::make_unique<between_criteria>(col, std::move(min), std::move(max)); return std::make_unique<between_criteria>(col, std::move(min), std::move(max));
} }
condition_node_ptr like(const column &col, const std::string &pattern) { criteria_ptr like(const column &col, const std::string &pattern) {
return std::make_unique<like_criteria>(col, pattern); return std::make_unique<like_criteria>(col, pattern);
} }
} }

View File

@ -1,13 +1,13 @@
#include "matador/criteria/like_criteria.hpp" #include "matador/criteria/like_criteria.hpp"
#include "matador/criteria/condition_node_visitor.hpp" #include "matador/criteria/criteria_visitor.hpp"
namespace matador::criteria { namespace matador::criteria {
like_criteria::like_criteria(column column, std::string pattern) like_criteria::like_criteria(column column, std::string pattern)
: column_(std::move(column)) : column_(std::move(column))
, pattern_(std::move(pattern)){} , pattern_(std::move(pattern)){}
void like_criteria::accept(condition_node_visitor &visitor) const { void like_criteria::accept(criteria_visitor &visitor) const {
visitor.visit(*this); visitor.visit(*this);
} }
} }

View File

@ -1,15 +1,15 @@
#include "matador/criteria/logical_criteria.hpp" #include "matador/criteria/logical_criteria.hpp"
#include "matador/criteria/condition_node_visitor.hpp" #include "matador/criteria/criteria_visitor.hpp"
namespace matador::criteria { namespace matador::criteria {
logical_criteria::logical_criteria( condition_node_ptr left, const logical_operator op, condition_node_ptr right ) logical_criteria::logical_criteria( criteria_ptr left, const logical_operator op, criteria_ptr right )
: left_(std::move(left)) : left_criteria_(std::move(left))
, op_(op) , operand_(op)
, right_(std::move(right)) , right_criteria_(std::move(right))
{} {}
void logical_criteria::accept(condition_node_visitor& visitor) const { void logical_criteria::accept(criteria_visitor& visitor) const {
visitor.visit(*this); visitor.visit(*this);
} }
} }

View File

@ -1,13 +1,13 @@
#include "matador/criteria/not_criteria.hpp" #include "matador/criteria/not_criteria.hpp"
#include "matador/criteria/condition_node_visitor.hpp" #include "matador/criteria/criteria_visitor.hpp"
namespace matador::criteria { namespace matador::criteria {
not_criteria::not_criteria(condition_node_ptr condition) not_criteria::not_criteria(criteria_ptr clause)
: condition_(std::move(condition)) : criteria_(std::move(clause))
{} {}
void not_criteria::accept( condition_node_visitor& visitor ) const { void not_criteria::accept( criteria_visitor& visitor ) const {
visitor.visit(*this); visitor.visit(*this);
} }
} }