//
//     Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace Nepomuk
{

class Variant
{
%TypeHeaderCode
#include <nepomuk/variant.h>
%End

public:
                            Variant ();
                            Variant (const Nepomuk::Variant& other);
    explicit                Variant (const QVariant& other);
//ig                        Variant (int i);
                            Variant (qlonglong i);
//ig                            Variant (uint i);
//ig                            Variant (qulonglong i);
//ig                            Variant (bool b);
                            Variant (double d);
//ig                            Variant (const char* string);
                            Variant (const QString& string);
                            Variant (const QDate& date);
                            Variant (const QTime& time);
                            Variant (const QDateTime& datetime);
                            Variant (const QUrl& url);
                            Variant (const Nepomuk::Resource& r);
                            Variant (const QList<int>& i);
//FIXME                            Variant (const QList<qlonglong>& i);
                            Variant (const QList<uint>& i);
//FIXME                            Variant (const QList<qulonglong>& i);


//mt undefined symbol: QList<bool>& b -- need mapped type?
//mt                        Variant (const QList<bool>& b);


                            Variant (const QList<double>& d);
                            Variant (const QStringList& stringlist);
                            Variant (const QList<QDate>& date);
                            Variant (const QList<QTime>& time);
                            Variant (const QList<QDateTime>& datetime);
                            Variant (const QList<QUrl>& url);
                            Variant (const QList<Nepomuk::Resource>& r);
                            Variant (const QList<Nepomuk::Variant>& vl);
//ig    void                    append (int i);
    void                    append (qlonglong i);
//ig    void                    append (uint i);
//ig    void                    append (qulonglong i);
//ig    void                    append (bool b);
    void                    append (double d);
    void                    append (const QString& string);
    void                    append (const QDate& date);
    void                    append (const QTime& time);
    void                    append (const QDateTime& datetime);
    void                    append (const QUrl& url);
    void                    append (const Nepomuk::Resource& r);
    void                    append (const Nepomuk::Variant& v);
    bool                    operator == (const Nepomuk::Variant& other) const;
    bool                    operator != (const Nepomuk::Variant& other) const;
    bool                    isValid () const;
    int                     type () const;
    int                     simpleType () const;
    bool                    isList () const;
    bool                    isInt () const;
    bool                    isInt64 () const;
    bool                    isUnsignedInt () const;
    bool                    isUnsignedInt64 () const;
    bool                    isBool () const;
    bool                    isDouble () const;
    bool                    isString () const;
    bool                    isDate () const;
    bool                    isTime () const;
    bool                    isDateTime () const;
    bool                    isUrl () const;
    bool                    isResource () const;
    bool                    isIntList () const;
    bool                    isInt64List () const;
    bool                    isUnsignedIntList () const;
    bool                    isUnsignedInt64List () const;
    bool                    isBoolList () const;
    bool                    isDoubleList () const;
    bool                    isStringList () const;
    bool                    isDateList () const;
    bool                    isTimeList () const;
    bool                    isDateTimeList () const;
    bool                    isUrlList () const;
    bool                    isResourceList () const;
    QVariant                variant () const;
    int                     toInt () const;
    qlonglong               toInt64 () const;
    uint                    toUnsignedInt () const;
    qulonglong              toUnsignedInt64 () const;
    bool                    toBool () const;
    double                  toDouble () const;
    QString                 toString () const;
    QDate                   toDate () const;
    QTime                   toTime () const;
    QDateTime               toDateTime () const;
    QUrl                    toUrl () const;
    Nepomuk::Resource       toResource () const;
    QList<int>              toIntList () const;
//FIXME    QList<qlonglong>        toInt64List () const;
    QList<uint>             toUnsignedIntList () const;
//FIXME    QList<qulonglong>       toUnsignedInt64List () const;


//mt undefined symbol: QList<bool> None -- need mapped type?
//mt     QList<bool>        toBoolList () const;


    QList<double>           toDoubleList () const;
    QStringList             toStringList () const;
    QList<QDate>            toDateList () const;
    QList<QTime>            toTimeList () const;
    QList<QDateTime>        toDateTimeList () const;
    QList<QUrl>             toUrlList () const;
    QList<Nepomuk::Resource>  toResourceList () const;
    QList<Nepomuk::Variant>  toVariantList () const;
    static Nepomuk::Variant  fromString (const QString& value, int type);
};   // Variant

};   // Nepomuk


