//
//     Copyright 2009 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 Soprano
{

class LanguageTag
{
%TypeHeaderCode
#include <soprano/languagetag.h>
%End

public:

    enum MatchFilter
    {
        MatchFilterBasic,
        MatchFilterExtended
    };


    enum LookupFlag
    {
        LookupFlagNone,
        LookupFlagNoFallback
    };

    typedef QFlags<Soprano::LanguageTag::LookupFlag> LookupFlags;

                            LanguageTag ();
                            LanguageTag (const Soprano::LanguageTag& other);
                            LanguageTag (const char* tag);
                            LanguageTag (const QLatin1String& tag);
                            LanguageTag (const QString& tag);
    explicit                LanguageTag (const QLocale& locale);
                            LanguageTag (QLocale::Language lang, QLocale::Country country = QLocale::AnyCountry);
    bool                    operator == (const Soprano::LanguageTag& other) const;
    bool                    operator != (const Soprano::LanguageTag& other) const;
    bool                    operator < (const Soprano::LanguageTag& other) const;
    bool                    operator <= (const Soprano::LanguageTag& other) const;
    bool                    operator > (const Soprano::LanguageTag& other) const;
    bool                    operator >= (const Soprano::LanguageTag& other) const;
    bool                    matches (const Soprano::LanguageTag& range, Soprano::LanguageTag::MatchFilter scheme = Soprano::LanguageTag::MatchFilterBasic) const;
    bool                    isEmpty () const;
    bool                    isValid () const;
    QStringList             subTags () const;
    QString                 toString () const;
    QString                 toPrettyString () const;
    QLocale                 toLocale () const;
    static int              lookup (const QList<Soprano::LanguageTag>& choices, const QList<Soprano::LanguageTag>& priority, Soprano::LanguageTag::LookupFlags flags = Soprano::LanguageTag::LookupFlagNone, Soprano::LanguageTag::MatchFilter scheme = Soprano::LanguageTag::MatchFilterBasic);
    static int              lookup (const QList<Soprano::LanguageTag>& choices, const Soprano::LanguageTag& priority, Soprano::LanguageTag::LookupFlags flags = Soprano::LanguageTag::LookupFlagNone, Soprano::LanguageTag::MatchFilter scheme = Soprano::LanguageTag::MatchFilterBasic);
};   // LanguageTag

uint                    qHash (const Soprano::LanguageTag& node);
};   // Soprano
