File indexing completed on 2024-04-21 03:48:17

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Andreas Xavier <andxav at zoho dot com>
0003  * SPDX-License-Identifier: GPL-2.0-or-later
0004  */
0005 
0006 #include "dummyreader.h"
0007 
0008 #include <KLocalizedString>
0009 
0010 #include <QIODevice>
0011 #include <QXmlStreamWriter>
0012 
0013 //@todo These static functions should be defined here.  Find the syntax bug.
0014 // QString DummyReader::mTag()
0015 // {
0016 //     return QString( "kvocdocdummyreadertestelement" );
0017 // }
0018 
0019 // QString DummyReader::makeErrorTag(KEduVocDocument::ErrorCode err)
0020 // {
0021 //     return "errnum-" +QString::number( int( err));
0022 // }
0023 
0024 // QString DummyReader::makeDummyString(KEduVocDocument::ErrorCode error
0025 //                                    , const QString & msg )
0026 // {
0027 //     QString out;
0028 //     QXmlStreamWriter stream(&out);
0029 //     stream.setAutoFormatting(true);
0030 //     stream.writeStartDocument();
0031 //     stream.writeStartElement(mTag());
0032 //     stream.writeTextElement( makeErrorTag(error), msg);
0033 //     stream.writeEndElement(); // m_tag
0034 //     stream.writeEndDocument();
0035 //     kDebug() << "The file" <<out;
0036 //     return out;
0037 // }
0038 
0039 DummyReader::DummyReader(QIODevice &dev)
0040     : m_dev(dev)
0041 {
0042 }
0043 
0044 bool DummyReader::isParsable()
0045 {
0046     bool isparsable = false;
0047     setDevice(&m_dev);
0048     if (!atEnd()) {
0049         readNextStartElement();
0050         if (isStartElement()) {
0051             if (name() == mTag()) {
0052                 isparsable = true;
0053             }
0054         }
0055     }
0056     m_dev.seek(0);
0057     return isparsable;
0058 }
0059 
0060 KEduVocDocument::FileType DummyReader::fileTypeHandled()
0061 {
0062     return KEduVocDocument::KvdNone;
0063 }
0064 
0065 KEduVocDocument::ErrorCode DummyReader::read(KEduVocDocument &)
0066 {
0067     setDevice(&m_dev);
0068     if (!atEnd()) {
0069         readNextStartElement();
0070         if (isStartElement()) {
0071             // kDebug() << "Reading Dummy File is start "<< name() <<" text "<<text();
0072             if (name() == mTag()) {
0073                 readNext();
0074                 readNext();
0075                 // kDebug() << "Reading Dummy File"<<name() << "text" << text();
0076                 if (isStartElement()) {
0077                     m_errorMessage = readElementText();
0078                     // kDebug() << "Reading Dummy File is " <<name() <<" with "<<m_errorMessage;
0079                     if (makeErrorTag(KEduVocDocument::NoError) == name())
0080                         return KEduVocDocument::NoError;
0081                     if (makeErrorTag(KEduVocDocument::Unknown) == name())
0082                         return KEduVocDocument::Unknown;
0083                     if (makeErrorTag(KEduVocDocument::InvalidXml) == name())
0084                         return KEduVocDocument::InvalidXml;
0085                     if (makeErrorTag(KEduVocDocument::FileTypeUnknown) == name())
0086                         return KEduVocDocument::FileTypeUnknown;
0087                     if (makeErrorTag(KEduVocDocument::FileCannotWrite) == name())
0088                         return KEduVocDocument::FileCannotWrite;
0089                     if (makeErrorTag(KEduVocDocument::FileWriterFailed) == name())
0090                         return KEduVocDocument::FileWriterFailed;
0091                     if (makeErrorTag(KEduVocDocument::FileCannotRead) == name())
0092                         return KEduVocDocument::FileCannotRead;
0093                     if (makeErrorTag(KEduVocDocument::FileReaderFailed) == name())
0094                         return KEduVocDocument::FileReaderFailed;
0095                     if (makeErrorTag(KEduVocDocument::FileDoesNotExist) == name())
0096                         return KEduVocDocument::FileDoesNotExist;
0097                     if (makeErrorTag(KEduVocDocument::FileLocked) == name())
0098                         return KEduVocDocument::FileLocked;
0099                     if (makeErrorTag(KEduVocDocument::FileCannotLock) == name())
0100                         return KEduVocDocument::FileCannotLock;
0101                 }
0102             }
0103         }
0104     }
0105     return KEduVocDocument::Unknown;
0106 }
0107 
0108 QString DummyReader::errorMessage() const
0109 {
0110     return m_errorMessage;
0111 }