File indexing completed on 2024-04-21 14:52:18

0001 /*
0002     This file is part of KDE.
0003 
0004     SPDX-FileCopyrightText: 2008 Cornelius Schumacher <schumacher@kde.org>
0005     SPDX-FileCopyrightText: 2009 Marco Martin <notmart@gmail.com>
0006 
0007     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0008 */
0009 
0010 #include "knowledgebaseentryparser.h"
0011 
0012 using namespace Attica;
0013 
0014 KnowledgeBaseEntry KnowledgeBaseEntry::Parser::parseXml(QXmlStreamReader &xml)
0015 {
0016     KnowledgeBaseEntry knowledgeBase;
0017 
0018     while (!xml.atEnd()) {
0019         xml.readNext();
0020 
0021         if (xml.isStartElement()) {
0022             if (xml.name() == QLatin1String("id")) {
0023                 knowledgeBase.setId(xml.readElementText());
0024             } else if (xml.name() == QLatin1String("status")) {
0025                 knowledgeBase.setStatus(xml.readElementText());
0026             } else if (xml.name() == QLatin1String("contentId")) {
0027                 knowledgeBase.setContentId(xml.readElementText().toInt());
0028             } else if (xml.name() == QLatin1String("user")) {
0029                 knowledgeBase.setUser(xml.readElementText());
0030             } else if (xml.name() == QLatin1String("changed")) {
0031                 knowledgeBase.setChanged(QDateTime::fromString(xml.readElementText(), Qt::ISODate));
0032             } else if (xml.name() == QLatin1String("description")) {
0033                 knowledgeBase.setDescription(xml.readElementText());
0034             } else if (xml.name() == QLatin1String("answer")) {
0035                 knowledgeBase.setAnswer(xml.readElementText());
0036             } else if (xml.name() == QLatin1String("comments")) {
0037                 knowledgeBase.setComments(xml.readElementText().toInt());
0038             } else if (xml.name() == QLatin1String("detailpage")) {
0039                 knowledgeBase.setDetailPage(QUrl(xml.readElementText()));
0040             } else if (xml.name() == QLatin1String("contentid")) {
0041                 knowledgeBase.setContentId(xml.readElementText().toInt());
0042             } else if (xml.name() == QLatin1String("name")) {
0043                 knowledgeBase.setName(xml.readElementText());
0044             } else {
0045                 knowledgeBase.addExtendedAttribute(xml.name().toString(), xml.readElementText());
0046             }
0047         } else if (xml.isEndElement() && xml.name() == QLatin1String("content")) {
0048             break;
0049         }
0050     }
0051 
0052     return knowledgeBase;
0053 }
0054 
0055 QStringList KnowledgeBaseEntry::Parser::xmlElement() const
0056 {
0057     return QStringList(QStringLiteral("content"));
0058 }