890a38a3fe8beb8f1421a3802487a406dab8552e
[profile/ivi/qtxmlpatterns.git] / src / xmlpatterns / data / qcommonvalues_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_CommonValues_H
53 #define Patternist_CommonValues_H
54
55 #include <private/qdaytimeduration_p.h>
56 #include <private/qyearmonthduration_p.h>
57 #include <private/qemptyiterator_p.h>
58
59 QT_BEGIN_HEADER
60
61 QT_BEGIN_NAMESPACE
62
63 namespace QPatternist
64 {
65
66     /**
67      * @short A collection of common values.
68      *
69      * @author Frans Englich <frans.englich@nokia.com>
70      * @ingroup Patternist_xdm
71      * @todo Documentation is missing/incomplete
72      */
73     class CommonValues
74     {
75     public:
76         /**
77          * An empty, zero-length string.
78          *
79          * @note It is not @c null, but empty.
80          */
81         static const AtomicValue::Ptr EmptyString;
82
83         /**
84          * The string "true", the lexical representation of
85          * @c xs:boolean's value @c true.
86          */
87         static const AtomicValue::Ptr TrueString;
88
89         /**
90          * The string "false", the lexical representation of
91          * @c xs:boolean's value @c false.
92          */
93         static const AtomicValue::Ptr UntypedAtomicFalse;
94
95         /**
96          * The string "true", the lexical representation of
97          * @c xs:boolean's value @c true.
98          */
99         static const AtomicValue::Ptr UntypedAtomicTrue;
100
101         /**
102          * The string "false", the lexical representation of
103          * @c xs:boolean's value @c false.
104          */
105         static const AtomicValue::Ptr FalseString;
106
107         /**
108          * @returns a Boolean instance carrying the boolean value @c true.
109          * Use this value instead of Boolean::fromValue() if you
110          * know what boolean value you need.
111          */
112         static const AtomicValue::Ptr BooleanTrue;
113
114         /**
115          * @returns a Boolean instance carrying the boolean value @c true.
116          * Use this value instead of Boolean::fromValue() if you
117          * know what boolean value you need.
118          */
119         static const AtomicValue::Ptr BooleanFalse;
120
121         /**
122          * Not-a-Numeric typed as @c xs:double.
123          */
124         static const AtomicValue::Ptr DoubleNaN;
125
126         /**
127          * Not-a-Number typed as @c xs:float, <tt>xs:float("NaN")</tt>.
128          */
129         static const AtomicValue::Ptr FloatNaN;
130
131         /**
132          * Zero(0) typed as @c xs:integer, <tt>xs:integer("0")</tt>.
133          */
134         static const Item IntegerZero;
135
136         /**
137          * An empty, "", @c xs:anyURI.
138          */
139         static const AtomicValue::Ptr EmptyAnyURI;
140
141         /**
142          * The empty sequence.
143          */
144         static const EmptyIterator<Item>::Ptr emptyIterator;
145
146         /**
147          * <tt>xs:float("-INF")</tt>
148          */
149         static const AtomicValue::Ptr NegativeInfFloat;
150
151         /**
152          * <tt>xs:float("INF")</tt>
153          */
154         static const AtomicValue::Ptr InfFloat;
155
156         /**
157          * <tt>xs:double("-INF")</tt>
158          */
159         static const AtomicValue::Ptr NegativeInfDouble;
160
161         /**
162          * <tt>xs:double("INF")</tt>
163          */
164         static const AtomicValue::Ptr InfDouble;
165
166         /**
167          * <tt>xs:float("1")</tt>
168          */
169         static const AtomicValue::Ptr FloatOne;
170         /**
171          * <tt>xs:double("1")</tt>
172          */
173         static const AtomicValue::Ptr DoubleOne;
174         /**
175          * <tt>xs:decimal("1")</tt>
176          */
177         static const AtomicValue::Ptr DecimalOne;
178
179         /**
180          * <tt>xs:integer("1")</tt>
181          */
182         static const Item IntegerOne;
183
184         /**
185          * <tt>xs:integer("-1")</tt>
186          */
187         static const Item IntegerOneNegative;
188
189         /**
190          * <tt>xs:double("0")</tt>
191          */
192         static const AtomicValue::Ptr DoubleZero;
193
194         /**
195          * <tt>xs:float("0")</tt>
196          */
197         static const AtomicValue::Ptr FloatZero;
198         /**
199          * <tt>xs:integer("0")</tt>
200          */
201         static const AtomicValue::Ptr DecimalZero;
202
203         /**
204          * The @c xs:dayTimeDuration value PT0S
205          */
206         static const DayTimeDuration::Ptr DayTimeDurationZero;
207
208         /**
209          * The @c xs:yearMonthDuration value P0M
210          */
211         static const DayTimeDuration::Ptr YearMonthDurationZero;
212
213     private:
214         /**
215          * The constructor is private because this class is not meant to be instantiated,
216          * but should only be used via its static const members.
217          */
218         inline CommonValues();
219
220         Q_DISABLE_COPY(CommonValues)
221     };
222 }
223
224 QT_END_NAMESPACE
225
226 QT_END_HEADER
227
228 #endif