forked from treefrogframework/treefrog-framework
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtcriteria.h
More file actions
72 lines (59 loc) · 2.78 KB
/
Copy pathtcriteria.h
File metadata and controls
72 lines (59 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#pragma once
#include <QVariant>
#include <TGlobal>
class T_CORE_EXPORT TCriteria {
public:
TCriteria();
TCriteria(const TCriteria &other);
TCriteria(int property, const QVariant &val);
TCriteria(int property, TSql::ComparisonOperator op);
TCriteria(int property, TSql::ComparisonOperator op, const QVariant &val);
TCriteria(int property, TSql::ComparisonOperator op, const QVariant &val1, const QVariant &val2);
TCriteria(int property, TSql::ComparisonOperator op1, TSql::ComparisonOperator op2, const QVariant &val);
TCriteria(int property, TMongo::ComparisonOperator op);
TCriteria(int property, TMongo::ComparisonOperator op, const QVariant &val);
~TCriteria() { }
TCriteria &add(int property, const QVariant &val);
TCriteria &add(int property, TSql::ComparisonOperator op);
TCriteria &add(int property, TSql::ComparisonOperator op, const QVariant &val);
TCriteria &add(int property, TSql::ComparisonOperator op, const QVariant &val1, const QVariant &val2);
TCriteria &add(int property, TSql::ComparisonOperator op1, TSql::ComparisonOperator op2, const QVariant &val);
TCriteria &add(const TCriteria &criteria);
TCriteria &addOr(int property, const QVariant &val);
TCriteria &addOr(int property, TSql::ComparisonOperator op);
TCriteria &addOr(int property, TSql::ComparisonOperator op, const QVariant &val);
TCriteria &addOr(int property, TSql::ComparisonOperator op, const QVariant &val1, const QVariant &val2);
TCriteria &addOr(int property, TSql::ComparisonOperator op1, TSql::ComparisonOperator op2, const QVariant &val);
TCriteria &addOr(const TCriteria &criteria);
// For MongoDB
TCriteria &add(int property, TMongo::ComparisonOperator op);
TCriteria &add(int property, TMongo::ComparisonOperator op, const QVariant &val);
TCriteria &addOr(int property, TMongo::ComparisonOperator op);
TCriteria &addOr(int property, TMongo::ComparisonOperator op, const QVariant &val);
bool isEmpty() const;
void clear();
const TCriteria operator&&(const TCriteria &criteria) const;
const TCriteria operator||(const TCriteria &criteria) const;
const TCriteria operator!() const;
TCriteria &operator=(const TCriteria &other);
protected:
enum LogicalOperator {
None = 0,
And,
Or,
Not,
};
const QVariant &first() const { return cri1; }
const QVariant &second() const { return cri2; }
LogicalOperator logicalOperator() const { return (LogicalOperator)logiOp; }
TCriteria &add(LogicalOperator op, const TCriteria &criteria);
private:
QVariant cri1;
QVariant cri2;
int logiOp {None};
template <class T>
friend class TCriteriaConverter;
template <class T>
friend class TCriteriaMongoConverter;
};
Q_DECLARE_METATYPE(TCriteria)