//
//     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 Akonadi
{

class Collection : Akonadi::Entity
{
%TypeHeaderCode
#include <akonadi/collection.h>
%End

public:
    typedef QList<Akonadi::Collection> List;


    enum Right
    {
        ReadOnly,
        CanChangeItem,
        CanCreateItem,
        CanDeleteItem,
        CanChangeCollection,
        CanCreateCollection,
        CanDeleteCollection,
        AllRights
    };

    typedef QFlags<Akonadi::Collection::Right> Rights;

                            Collection ();
    explicit                Collection (Id id);
                            Collection (const Akonadi::Collection& other);
    static Akonadi::Collection  fromUrl (const KUrl& url);
    QString                 name () const;
    void                    setName (const QString& name);
    Akonadi::Collection::Rights  rights () const;
    void                    setRights (Akonadi::Collection::Rights rights);
    QStringList             contentMimeTypes () const;
    void                    setContentMimeTypes (const QStringList& types);
    Id                      parent () const;
    void                    setParent (Id parent);
    void                    setParent (const Akonadi::Collection& collection);
    QString                 parentRemoteId () const;
    void                    setParentRemoteId (const QString& identifier);
    static Akonadi::Collection  root ();
    static QString          mimeType ();
    QString                 resource () const;
    void                    setResource (const QString& identifier);
    Akonadi::CachePolicy    cachePolicy () const;
    void                    setCachePolicy (const Akonadi::CachePolicy& policy);
    Akonadi::CollectionStatistics  statistics () const;
    void                    setStatistics (const Akonadi::CollectionStatistics& statistics);
    KUrl                    url () const;
};   // Collection

};   // Akonadi

uint                    qHash (const Akonadi::Collection& collection);

