ee6d5e5b54d79ea6ae45c361f0e1a5abfebed776
[profile/ivi/qtxmlpatterns.git] / src / xmlpatterns / type / qatomiccomparatorlocators_p.h
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the QtXmlPatterns module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16 **
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
20 **
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
28 **
29 ** Other Usage
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 //
43 //  W A R N I N G
44 //  -------------
45 //
46 // This file is not part of the Qt API.  It exists purely as an
47 // implementation detail.  This header file may change from version to
48 // version without notice, or even be removed.
49 //
50 // We mean it.
51
52 #ifndef Patternist_AtomicComparatorLocators_H
53 #define Patternist_AtomicComparatorLocators_H
54
55 #include <private/qatomiccomparatorlocator_p.h>
56
57 /**
58  * @file
59  * @short Contains AtomicComparatorLocator sub-classes that finds classes
60  * which can compare atomic values.
61  */
62
63 QT_BEGIN_HEADER
64
65 QT_BEGIN_NAMESPACE
66
67 namespace QPatternist
68 {
69
70     /**
71      * @author Frans Englich <frans.englich@nokia.com>
72      */
73     class DoubleComparatorLocator : public AtomicComparatorLocator
74     {
75         using AtomicComparatorLocator::visit;
76         virtual AtomicTypeVisitorResult::Ptr visit(const DoubleType *,
77                                                    const qint16 op,
78                                                    const SourceLocationReflection *const) const;
79         virtual AtomicTypeVisitorResult::Ptr visit(const FloatType *,
80                                                    const qint16 op,
81                                                    const SourceLocationReflection *const) const;
82         virtual AtomicTypeVisitorResult::Ptr visit(const DecimalType *,
83                                                    const qint16 op,
84                                                    const SourceLocationReflection *const) const;
85         virtual AtomicTypeVisitorResult::Ptr visit(const IntegerType *,
86                                                    const qint16 op,
87                                                    const SourceLocationReflection *const) const;
88     };
89
90     /**
91      * @author Frans Englich <frans.englich@nokia.com>
92      */
93     class FloatComparatorLocator : public AtomicComparatorLocator
94     {
95         using AtomicComparatorLocator::visit;
96         virtual AtomicTypeVisitorResult::Ptr visit(const DoubleType *,
97                                                    const qint16 op,
98                                                    const SourceLocationReflection *const) const;
99         virtual AtomicTypeVisitorResult::Ptr visit(const FloatType *,
100                                                    const qint16 op,
101                                                    const SourceLocationReflection *const) const;
102         virtual AtomicTypeVisitorResult::Ptr visit(const DecimalType *,
103                                                    const qint16 op,
104                                                    const SourceLocationReflection *const) const;
105         virtual AtomicTypeVisitorResult::Ptr visit(const IntegerType *,
106                                                    const qint16 op,
107                                                    const SourceLocationReflection *const) const;
108     };
109
110     /**
111      * @author Frans Englich <frans.englich@nokia.com>
112      */
113     class DecimalComparatorLocator : public AtomicComparatorLocator
114     {
115         using AtomicComparatorLocator::visit;
116         virtual AtomicTypeVisitorResult::Ptr visit(const DoubleType *,
117                                                    const qint16 op,
118                                                    const SourceLocationReflection *const) const;
119         virtual AtomicTypeVisitorResult::Ptr visit(const FloatType *,
120                                                    const qint16 op,
121                                                    const SourceLocationReflection *const) const;
122         virtual AtomicTypeVisitorResult::Ptr visit(const DecimalType *,
123                                                    const qint16 op,
124                                                    const SourceLocationReflection *const) const;
125         virtual AtomicTypeVisitorResult::Ptr visit(const IntegerType *,
126                                                    const qint16 op,
127                                                    const SourceLocationReflection *const) const;
128     };
129
130     /**
131      * @author Frans Englich <frans.englich@nokia.com>
132      */
133     class IntegerComparatorLocator : public AtomicComparatorLocator
134     {
135         using AtomicComparatorLocator::visit;
136         virtual AtomicTypeVisitorResult::Ptr visit(const DoubleType *,
137                                                    const qint16 op,
138                                                    const SourceLocationReflection *const) const;
139         virtual AtomicTypeVisitorResult::Ptr visit(const FloatType *,
140                                                    const qint16 op,
141                                                    const SourceLocationReflection *const) const;
142         virtual AtomicTypeVisitorResult::Ptr visit(const DecimalType *,
143                                                    const qint16 op,
144                                                    const SourceLocationReflection *const) const;
145         virtual AtomicTypeVisitorResult::Ptr visit(const IntegerType *,
146                                                    const qint16 op,
147                                                    const SourceLocationReflection *const) const;
148     };
149
150     /**
151      * @author Frans Englich <frans.englich@nokia.com>
152      */
153     class BooleanComparatorLocator : public AtomicComparatorLocator
154     {
155         using AtomicComparatorLocator::visit;
156         virtual AtomicTypeVisitorResult::Ptr visit(const BooleanType *,
157                                                    const qint16 op,
158                                                    const SourceLocationReflection *const) const;
159     };
160
161     /**
162      * @author Frans Englich <frans.englich@nokia.com>
163      */
164     class Base64BinaryComparatorLocator : public AtomicComparatorLocator
165     {
166         using AtomicComparatorLocator::visit;
167         virtual AtomicTypeVisitorResult::Ptr visit(const Base64BinaryType *,
168                                                    const qint16 op,
169                                                    const SourceLocationReflection *const) const;
170     };
171
172     /**
173      * @author Frans Englich <frans.englich@nokia.com>
174      */
175     class HexBinaryComparatorLocator : public AtomicComparatorLocator
176     {
177         using AtomicComparatorLocator::visit;
178         virtual AtomicTypeVisitorResult::Ptr visit(const HexBinaryType *,
179                                                    const qint16 op,
180                                                    const SourceLocationReflection *const) const;
181     };
182
183     /**
184      * @author Frans Englich <frans.englich@nokia.com>
185      */
186     class QNameComparatorLocator : public AtomicComparatorLocator
187     {
188         using AtomicComparatorLocator::visit;
189         virtual AtomicTypeVisitorResult::Ptr visit(const QNameType *,
190                                                    const qint16 op,
191                                                    const SourceLocationReflection *const) const;
192     };
193
194     /**
195      * @author Frans Englich <frans.englich@nokia.com>
196      */
197     class StringComparatorLocator : public AtomicComparatorLocator
198     {
199         using AtomicComparatorLocator::visit;
200         virtual AtomicTypeVisitorResult::Ptr visit(const StringType *,
201                                                    const qint16 op,
202                                                    const SourceLocationReflection *const) const;
203         virtual AtomicTypeVisitorResult::Ptr visit(const UntypedAtomicType *,
204                                                    const qint16 op,
205                                                    const SourceLocationReflection *const) const;
206         virtual AtomicTypeVisitorResult::Ptr visit(const AnyURIType *,
207                                                    const qint16 op,
208                                                    const SourceLocationReflection *const) const;
209     };
210
211
212     /**
213      * @author Frans Englich <frans.englich@nokia.com>
214      */
215     class GYearComparatorLocator : public AtomicComparatorLocator
216     {
217         using AtomicComparatorLocator::visit;
218         virtual AtomicTypeVisitorResult::Ptr visit(const GYearType *,
219                                                    const qint16 op,
220                                                    const SourceLocationReflection *const) const;
221     };
222
223     /**
224      * @author Frans Englich <frans.englich@nokia.com>
225      */
226     class GMonthComparatorLocator : public AtomicComparatorLocator
227     {
228         using AtomicComparatorLocator::visit;
229         virtual AtomicTypeVisitorResult::Ptr visit(const GMonthType *,
230                                                    const qint16 op,
231                                                    const SourceLocationReflection *const) const;
232     };
233
234     /**
235      * @author Frans Englich <frans.englich@nokia.com>
236      */
237     class GYearMonthComparatorLocator : public AtomicComparatorLocator
238     {
239         using AtomicComparatorLocator::visit;
240         virtual AtomicTypeVisitorResult::Ptr visit(const GYearMonthType *,
241                                                    const qint16 op,
242                                                    const SourceLocationReflection *const) const;
243     };
244
245     /**
246      * @author Frans Englich <frans.englich@nokia.com>
247      */
248     class GMonthDayComparatorLocator : public AtomicComparatorLocator
249     {
250         using AtomicComparatorLocator::visit;
251         virtual AtomicTypeVisitorResult::Ptr visit(const GMonthDayType *,
252                                                    const qint16 op,
253                                                    const SourceLocationReflection *const) const;
254     };
255
256     /**
257      * @author Frans Englich <frans.englich@nokia.com>
258      */
259     class GDayComparatorLocator : public AtomicComparatorLocator
260     {
261         using AtomicComparatorLocator::visit;
262         virtual AtomicTypeVisitorResult::Ptr visit(const GDayType *,
263                                                    const qint16 op,
264                                                    const SourceLocationReflection *const) const;
265     };
266
267     /**
268      * @author Frans Englich <frans.englich@nokia.com>
269      */
270     class DateTimeComparatorLocator : public AtomicComparatorLocator
271     {
272         using AtomicComparatorLocator::visit;
273         virtual AtomicTypeVisitorResult::Ptr visit(const DateTimeType *,
274                                                    const qint16 op,
275                                                    const SourceLocationReflection *const) const;
276     };
277
278     /**
279      * @author Frans Englich <frans.englich@nokia.com>
280      */
281     class SchemaTimeComparatorLocator : public AtomicComparatorLocator
282     {
283         using AtomicComparatorLocator::visit;
284         virtual AtomicTypeVisitorResult::Ptr visit(const SchemaTimeType *,
285                                                    const qint16 op,
286                                                    const SourceLocationReflection *const) const;
287     };
288
289     /**
290      * @author Frans Englich <frans.englich@nokia.com>
291      */
292     class DateComparatorLocator : public AtomicComparatorLocator
293     {
294         using AtomicComparatorLocator::visit;
295         virtual AtomicTypeVisitorResult::Ptr visit(const DateType *,
296                                                    const qint16 op,
297                                                    const SourceLocationReflection *const) const;
298     };
299
300     /**
301      * @author Frans Englich <frans.englich@nokia.com>
302      */
303     class DurationComparatorLocator : public AtomicComparatorLocator
304     {
305         using AtomicComparatorLocator::visit;
306         virtual AtomicTypeVisitorResult::Ptr visit(const DayTimeDurationType *,
307                                                    const qint16 op,
308                                                    const SourceLocationReflection *const) const;
309         virtual AtomicTypeVisitorResult::Ptr visit(const DurationType *,
310                                                    const qint16 op,
311                                                    const SourceLocationReflection *const) const;
312         virtual AtomicTypeVisitorResult::Ptr visit(const YearMonthDurationType *,
313                                                    const qint16 op,
314                                                    const SourceLocationReflection *const) const;
315     };
316
317     /**
318      * @author Frans Englich <frans.englich@nokia.com>
319      */
320     class DayTimeDurationComparatorLocator : public AtomicComparatorLocator
321     {
322         using AtomicComparatorLocator::visit;
323         virtual AtomicTypeVisitorResult::Ptr visit(const DayTimeDurationType *,
324                                                    const qint16 op,
325                                                    const SourceLocationReflection *const) const;
326         virtual AtomicTypeVisitorResult::Ptr visit(const DurationType *,
327                                                    const qint16 op,
328                                                    const SourceLocationReflection *const) const;
329         virtual AtomicTypeVisitorResult::Ptr visit(const YearMonthDurationType *,
330                                                    const qint16 op,
331                                                    const SourceLocationReflection *const) const;
332     };
333
334     /**
335      * @author Frans Englich <frans.englich@nokia.com>
336      */
337     class YearMonthDurationComparatorLocator : public AtomicComparatorLocator
338     {
339         using AtomicComparatorLocator::visit;
340         virtual AtomicTypeVisitorResult::Ptr visit(const DayTimeDurationType *,
341                                                    const qint16 op,
342                                                    const SourceLocationReflection *const) const;
343         virtual AtomicTypeVisitorResult::Ptr visit(const DurationType *,
344                                                    const qint16 op,
345                                                    const SourceLocationReflection *const) const;
346         virtual AtomicTypeVisitorResult::Ptr visit(const YearMonthDurationType *,
347                                                    const qint16 op,
348                                                    const SourceLocationReflection *const) const;
349     };
350 }
351
352 QT_END_NAMESPACE
353
354 QT_END_HEADER
355
356 #endif