//
//     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 Attribute /Abstract/
{
%TypeHeaderCode
#include <akonadi/attribute.h>
%End

public:
    typedef QList<Akonadi::Attribute*> List;

    virtual QByteArray      type () const=0;

// FIXME This causes trouble for g++ w.r.t. the subclasses.
//ig    virtual Akonadi::Attribute*  clone () const=0;
    virtual QByteArray      serialized () const=0;
    virtual void            deserialize (const QByteArray& data)=0;
    virtual ~Attribute ();
%ConvertToSubClassCode
    // CTSCC for subclasses of 'Attribute'
    sipType = NULL;

    if (dynamic_cast<Akonadi::AddressAttribute*>(sipCpp))
        sipType = sipType_Akonadi_AddressAttribute;
    else if (dynamic_cast<Akonadi::CollectionQuotaAttribute*>(sipCpp))
        sipType = sipType_Akonadi_CollectionQuotaAttribute;
    else if (dynamic_cast<Akonadi::EntityDisplayAttribute*>(sipCpp))
        sipType = sipType_Akonadi_EntityDisplayAttribute;
    else if (dynamic_cast<Akonadi::EntityHiddenAttribute*>(sipCpp))
        sipType = sipType_Akonadi_EntityHiddenAttribute;
    else if (dynamic_cast<Akonadi::MessageFolderAttribute*>(sipCpp))
        sipType = sipType_Akonadi_MessageFolderAttribute;
    else if (dynamic_cast<Akonadi::MessageThreadingAttribute*>(sipCpp))
        sipType = sipType_Akonadi_MessageThreadingAttribute;
%End
};
// Attribute

};
// Akonadi


%ModuleHeaderCode
//ctscc
#include <akonadi/kmime/addressattribute.h>
#include <akonadi/attribute.h>
#include <akonadi/collectionquotaattribute.h>
#include <akonadi/entitydisplayattribute.h>
#include <akonadi/entityhiddenattribute.h>
#include <akonadi/kmime/messagefolderattribute.h>
#include <akonadi/kmime/messagethreadingattribute.h>
%End
