Nepomuk
variant.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _NEPOMUK_VARIANT_H_
00022 #define _NEPOMUK_VARIANT_H_
00023
00024 #include "nepomuk_export.h"
00025 #include "resource.h"
00026
00027 #include <QtCore/QDateTime>
00028 #include <QtCore/QUrl>
00029 #include <QtCore/QVariant>
00030
00031 namespace Nepomuk {
00032
00033 class Resource;
00034
00055 class NEPOMUK_EXPORT Variant
00056 {
00057 public:
00058 Variant();
00059 ~Variant();
00060 Variant( const Variant& other );
00061
00065 explicit Variant( const QVariant& other );
00066 Variant( int i );
00067 Variant( qlonglong i );
00068 Variant( uint i );
00069 Variant( qulonglong i );
00070 Variant( bool b );
00071 Variant( double d );
00072 Variant( const char* string );
00073 Variant( const QString& string );
00074 Variant( const QDate& date );
00075 Variant( const QTime& time );
00076 Variant( const QDateTime& datetime );
00077 Variant( const QUrl& url );
00078 Variant( const Resource& r );
00079 Variant( const QList<int>& i );
00080 Variant( const QList<qlonglong>& i );
00081 Variant( const QList<uint>& i );
00082 Variant( const QList<qulonglong>& i );
00083 Variant( const QList<bool>& b );
00084 Variant( const QList<double>& d );
00085 Variant( const QStringList& stringlist );
00086 Variant( const QList<QDate>& date );
00087 Variant( const QList<QTime>& time );
00088 Variant( const QList<QDateTime>& datetime );
00089 Variant( const QList<QUrl>& url );
00090 Variant( const QList<Resource>& r );
00091
00092 Variant& operator=( const Variant& );
00093 Variant& operator=( int i );
00094 Variant& operator=( qlonglong i );
00095 Variant& operator=( uint i );
00096 Variant& operator=( qulonglong i );
00097 Variant& operator=( bool b );
00098 Variant& operator=( double d );
00099 Variant& operator=( const QString& string );
00100 Variant& operator=( const QDate& date );
00101 Variant& operator=( const QTime& time );
00102 Variant& operator=( const QDateTime& datetime );
00103 Variant& operator=( const QUrl& url );
00104 Variant& operator=( const Resource& r );
00105 Variant& operator=( const QList<int>& i );
00106 Variant& operator=( const QList<qlonglong>& i );
00107 Variant& operator=( const QList<uint>& i );
00108 Variant& operator=( const QList<qulonglong>& i );
00109 Variant& operator=( const QList<bool>& b );
00110 Variant& operator=( const QList<double>& d );
00111 Variant& operator=( const QStringList& stringlist );
00112 Variant& operator=( const QList<QDate>& date );
00113 Variant& operator=( const QList<QTime>& time );
00114 Variant& operator=( const QList<QDateTime>& datetime );
00115 Variant& operator=( const QList<QUrl>& url );
00116 Variant& operator=( const QList<Resource>& r );
00117
00122 void append( int i );
00123 void append( qlonglong i );
00124 void append( uint i );
00125 void append( qulonglong i );
00126 void append( bool b );
00127 void append( double d );
00128 void append( const QString& string );
00129 void append( const QDate& date );
00130 void append( const QTime& time );
00131 void append( const QDateTime& datetime );
00132 void append( const QUrl& url );
00133 void append( const Resource& r );
00134
00141 void append( const Variant& v );
00142
00148 bool operator==( const Variant& other ) const;
00149
00153 bool operator!=( const Variant& other ) const;
00154
00155 bool isValid() const;
00156
00160 int type() const;
00161
00166 int simpleType() const;
00167
00181 bool isList() const;
00182
00183 bool isInt() const;
00184 bool isInt64() const;
00185 bool isUnsignedInt() const;
00186 bool isUnsignedInt64() const;
00187 bool isBool() const;
00188 bool isDouble() const;
00189 bool isString() const;
00190 bool isDate() const;
00191 bool isTime() const;
00192 bool isDateTime() const;
00193 bool isUrl() const;
00194 bool isResource() const;
00195
00196 bool isIntList() const;
00197 bool isInt64List() const;
00198 bool isUnsignedIntList() const;
00199 bool isUnsignedInt64List() const;
00200 bool isBoolList() const;
00201 bool isDoubleList() const;
00202 bool isStringList() const;
00203 bool isDateList() const;
00204 bool isTimeList() const;
00205 bool isDateTimeList() const;
00206 bool isUrlList() const;
00207 bool isResourceList() const;
00208
00209 QVariant variant() const;
00210
00211 int toInt() const;
00212 qlonglong toInt64() const;
00213 uint toUnsignedInt() const;
00214 qulonglong toUnsignedInt64() const;
00215
00216 bool toBool() const;
00217 double toDouble() const;
00218
00227 QString toString() const;
00228 QDate toDate() const;
00229 QTime toTime() const;
00230 QDateTime toDateTime() const;
00231 QUrl toUrl() const;
00232 Resource toResource() const;
00233
00234 QList<int> toIntList() const;
00235 QList<qlonglong> toInt64List() const;
00236 QList<uint> toUnsignedIntList() const;
00237 QList<qulonglong> toUnsignedInt64List() const;
00238 QList<bool> toBoolList() const;
00239 QList<double> toDoubleList() const;
00240
00245 QStringList toStringList() const;
00246 QList<QDate> toDateList() const;
00247 QList<QTime> toTimeList() const;
00248 QList<QDateTime> toDateTimeList() const;
00249 QList<QUrl> toUrlList() const;
00250 QList<Resource> toResourceList() const;
00251
00257 static Variant fromString( const QString& value, int type );
00258
00259 private:
00260 class Private;
00261 Private* const d;
00262 };
00263 }
00264
00265
00266 NEPOMUK_EXPORT QDebug operator<<( QDebug dbg, const Nepomuk::Variant& );
00267
00268 Q_DECLARE_METATYPE(Nepomuk::Resource)
00269 Q_DECLARE_METATYPE(QList<Nepomuk::Resource>)
00270 Q_DECLARE_METATYPE(QList<int>)
00271 Q_DECLARE_METATYPE(QList<qlonglong>)
00272 Q_DECLARE_METATYPE(QList<uint>)
00273 Q_DECLARE_METATYPE(QList<qulonglong>)
00274 Q_DECLARE_METATYPE(QList<double>)
00275 Q_DECLARE_METATYPE(QList<bool>)
00276 Q_DECLARE_METATYPE(QList<QDate>)
00277 Q_DECLARE_METATYPE(QList<QTime>)
00278 Q_DECLARE_METATYPE(QList<QDateTime>)
00279 Q_DECLARE_METATYPE(QList<QUrl>)
00280
00281 #endif