1 /*
2     This file is part of KDE.
3 
4     SPDX-FileCopyrightText: 2008 Cornelius Schumacher <schumacher@kde.org>
5     SPDX-FileCopyrightText: 2009 Marco Martin <notmart@gmail.com>
6 
7     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
8 */
9 
10 #include "knowledgebaseentryparser.h"
11 
12 using namespace Attica;
13 
parseXml(QXmlStreamReader & xml)14 KnowledgeBaseEntry KnowledgeBaseEntry::Parser::parseXml(QXmlStreamReader &xml)
15 {
16     KnowledgeBaseEntry knowledgeBase;
17 
18     while (!xml.atEnd()) {
19         xml.readNext();
20 
21         if (xml.isStartElement()) {
22             if (xml.name() == QLatin1String("id")) {
23                 knowledgeBase.setId(xml.readElementText());
24             } else if (xml.name() == QLatin1String("status")) {
25                 knowledgeBase.setStatus(xml.readElementText());
26             } else if (xml.name() == QLatin1String("contentId")) {
27                 knowledgeBase.setContentId(xml.readElementText().toInt());
28             } else if (xml.name() == QLatin1String("user")) {
29                 knowledgeBase.setUser(xml.readElementText());
30             } else if (xml.name() == QLatin1String("changed")) {
31                 knowledgeBase.setChanged(QDateTime::fromString(xml.readElementText(), Qt::ISODate));
32             } else if (xml.name() == QLatin1String("description")) {
33                 knowledgeBase.setDescription(xml.readElementText());
34             } else if (xml.name() == QLatin1String("answer")) {
35                 knowledgeBase.setAnswer(xml.readElementText());
36             } else if (xml.name() == QLatin1String("comments")) {
37                 knowledgeBase.setComments(xml.readElementText().toInt());
38             } else if (xml.name() == QLatin1String("detailpage")) {
39                 knowledgeBase.setDetailPage(QUrl(xml.readElementText()));
40             } else if (xml.name() == QLatin1String("contentid")) {
41                 knowledgeBase.setContentId(xml.readElementText().toInt());
42             } else if (xml.name() == QLatin1String("name")) {
43                 knowledgeBase.setName(xml.readElementText());
44             } else {
45                 knowledgeBase.addExtendedAttribute(xml.name().toString(), xml.readElementText());
46             }
47         } else if (xml.isEndElement() && xml.name() == QLatin1String("content")) {
48             break;
49         }
50     }
51 
52     return knowledgeBase;
53 }
54 
xmlElement() const55 QStringList KnowledgeBaseEntry::Parser::xmlElement() const
56 {
57     return QStringList(QStringLiteral("content"));
58 }
59