1 /* 2 SPDX-FileCopyrightText: 2015-2017 Krzysztof Nowicki <krissn@op.pl> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include <QList> 10 11 #include "ewsitembase.h" 12 13 class QXmlStreamReader; 14 class QXmlStreamWriter; 15 class EwsItemPrivate; 16 17 class EwsItem : public EwsItemBase 18 { 19 public: 20 typedef QList<EwsItem> List; 21 typedef QMultiMap<QString, QString> HeaderMap; 22 23 EwsItem(); 24 explicit EwsItem(QXmlStreamReader &reader); 25 EwsItem(const EwsItem &other); 26 EwsItem(EwsItem &&other); 27 ~EwsItem() override; 28 29 EwsItem &operator=(const EwsItem &other); 30 EwsItem &operator=(EwsItem &&other); 31 32 EwsItemType type() const; 33 void setType(EwsItemType type); 34 EwsItemType internalType() const; 35 36 bool write(QXmlStreamWriter &writer) const; 37 38 bool operator==(const EwsItem &other) const; 39 40 protected: 41 bool readBaseItemElement(QXmlStreamReader &reader); 42 }; 43 44 Q_DECLARE_METATYPE(EwsItem) 45 Q_DECLARE_METATYPE(EwsItem::List) 46 Q_DECLARE_METATYPE(EwsItem::HeaderMap) 47 48