00001
00045 #ifndef QSPARQLBINDING_H
00046 #define QSPARQLBINDING_H
00047
00048 #include "qsparql.h"
00049
00050 #include <QtCore/qvariant.h>
00051 #include <QtCore/qstring.h>
00052
00053 QT_BEGIN_HEADER
00054
00055 QT_BEGIN_NAMESPACE
00056
00057 QT_MODULE(Sparql)
00058
00059 class QSparqlBindingPrivate;
00060
00061 class Q_SPARQL_EXPORT QSparqlBinding
00062 {
00063 public:
00064 QSparqlBinding(const QString& name = QString());
00065 QSparqlBinding(const QString& name, const QVariant& value);
00066
00067 QSparqlBinding(const QSparqlBinding& other);
00068 QSparqlBinding& operator=(const QSparqlBinding& other);
00069 bool operator==(const QSparqlBinding& other) const;
00070 inline bool operator!=(const QSparqlBinding &other) const { return !operator==(other); }
00071 ~QSparqlBinding();
00072
00073 void setValue(const QString& value, const QUrl& dataTypeUri);
00074 void setValue(const QVariant& value);
00075 void setBlankNodeLabel(const QString& label);
00076 inline QVariant value() const
00077 { return val; }
00078 void setName(const QString& name);
00079 QString name() const;
00080 bool isUri() const;
00081 bool isLiteral() const;
00082 bool isBlank() const;
00083 void clear();
00084 QUrl dataTypeUri() const;
00085 QString toString() const;
00086
00087 void setDataTypeUri(const QUrl& datatype);
00088 void setLanguageTag(const QString& lang);
00089
00090 QString languageTag() const;
00091 bool isValid() const;
00092
00093 private:
00094 void detach();
00095 QVariant val;
00096 QSparqlBindingPrivate* d;
00097 };
00098
00099 #ifndef QT_NO_DEBUG_STREAM
00100 Q_SPARQL_EXPORT QDebug operator<<(QDebug, const QSparqlBinding &);
00101 #endif
00102
00103 QT_END_NAMESPACE
00104
00105 QT_END_HEADER
00106
00107 #endif // QSPARQLBINDING_H