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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
// Copyright (C) 2021 The Qt Company Ltd.
// Copyright (C) 2019 Luxoft Sweden AB
// Copyright (C) 2018 Pelagicore AG
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QUERYTERM_H
#define QUERYTERM_H
#include <QtCore/QObject>
#include <QtCore/QSharedData>
#include <QtCore/QVariant>
#include <QtInterfaceFramework/qtifglobal.h>
QT_BEGIN_NAMESPACE
class Q_QTINTERFACEFRAMEWORK_EXPORT QIfAbstractQueryTerm
{
public:
enum Type {
FilterTerm,
ConjunctionTerm,
ScopeTerm
};
virtual ~QIfAbstractQueryTerm();
virtual QString toString() const = 0;
virtual QIfAbstractQueryTerm::Type type() const = 0;
};
class QIfConjunctionTermPrivate;
class Q_QTINTERFACEFRAMEWORK_EXPORT QIfConjunctionTerm : public QIfAbstractQueryTerm
{
Q_GADGET
public:
enum Conjunction {
And,
Or
};
Q_ENUM(Conjunction)
explicit QIfConjunctionTerm();
~QIfConjunctionTerm() override;
QIfAbstractQueryTerm::Type type() const override;
QString toString() const override;
Conjunction conjunction() const;
QList<QIfAbstractQueryTerm*> terms() const;
private:
Q_DISABLE_COPY(QIfConjunctionTerm)
QIfConjunctionTermPrivate * d_ptr;
Q_DECLARE_PRIVATE(QIfConjunctionTerm)
friend class QIfQueryParser;
friend Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfAbstractQueryTerm** var);
};
class QIfScopeTermPrivate;
class Q_QTINTERFACEFRAMEWORK_EXPORT QIfScopeTerm : public QIfAbstractQueryTerm
{
Q_GADGET
public:
explicit QIfScopeTerm();
~QIfScopeTerm() override;
QIfAbstractQueryTerm::Type type() const override;
QString toString() const override;
bool isNegated() const;
QIfAbstractQueryTerm* term() const;
private:
Q_DISABLE_COPY(QIfScopeTerm)
QIfScopeTermPrivate * d_ptr;
Q_DECLARE_PRIVATE(QIfScopeTerm)
friend class QIfQueryParser;
friend Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfAbstractQueryTerm** var);
};
class QIfFilterTermPrivate;
class Q_QTINTERFACEFRAMEWORK_EXPORT QIfFilterTerm : public QIfAbstractQueryTerm
{
Q_GADGET
public:
enum Operator {
Equals,
EqualsCaseInsensitive,
Unequals,
GreaterThan,
GreaterEquals,
LowerThan,
LowerEquals
};
Q_ENUM(Operator)
explicit QIfFilterTerm();
~QIfFilterTerm() override;
QIfAbstractQueryTerm::Type type() const override;
QString toString() const override;
Operator operatorType() const;
QVariant value() const;
QString propertyName() const;
bool isNegated() const;
private:
Q_DISABLE_COPY(QIfFilterTerm)
QIfFilterTermPrivate * d_ptr;
Q_DECLARE_PRIVATE(QIfFilterTerm)
friend class QIfQueryParser;
friend Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfAbstractQueryTerm** var);
};
class QIfOrderTermPrivate;
class Q_QTINTERFACEFRAMEWORK_EXPORT QIfOrderTerm
{
public:
QIfOrderTerm();
QIfOrderTerm(const QIfOrderTerm &other);
virtual ~QIfOrderTerm();
QIfOrderTerm& operator =(const QIfOrderTerm &other);
bool isAscending() const;
QString propertyName() const;
private:
QSharedDataPointer<QIfOrderTermPrivate> d;
friend class QIfQueryParser;
friend Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfOrderTerm &var);
};
Q_DECLARE_TYPEINFO(QIfOrderTerm, Q_MOVABLE_TYPE);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator<<(QDataStream &out, QIfConjunctionTerm::Conjunction var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfConjunctionTerm::Conjunction &var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator<<(QDataStream &out, QIfFilterTerm::Operator var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfFilterTerm::Operator &var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator<<(QDataStream &out, QIfAbstractQueryTerm *var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfAbstractQueryTerm **var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator<<(QDataStream &out, const QIfOrderTerm &var);
Q_QTINTERFACEFRAMEWORK_EXPORT QDataStream &operator>>(QDataStream &in, QIfOrderTerm &var);
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QIfOrderTerm)
#endif // QUERYTERM_H
|