File indexing completed on 2024-05-05 03:48:49

0001 /*
0002  * create a KEduVocDocument from a text file
0003  * SPDX-FileCopyrightText: 2007 Peter Hedlund <peter.hedlund@kdemail.net>
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KEDUVOCCSVREADER_H
0008 #define KEDUVOCCSVREADER_H
0009 
0010 #include "keduvocdocument.h"
0011 #include "readerbase.h"
0012 #include <QString>
0013 
0014 class QIODevice;
0015 
0016 class KEduVocDocument;
0017 
0018 /** @brief CSV Reader, the default reader*/
0019 class KEduVocCsvReader : public ReaderBase
0020 {
0021 public:
0022     /** constructor
0023      @param dev to parse*/
0024     explicit KEduVocCsvReader(QIODevice &dev);
0025     /** destructor */
0026     ~KEduVocCsvReader() override{};
0027 
0028     /** @brief CSV can always parse a file
0029      @return true if parsable
0030     */
0031     bool isParsable() Q_DECL_OVERRIDE
0032     {
0033         return true;
0034     }
0035 
0036     /** @brief returns the KEduVocDocument::FileType that this reader handles
0037         @return KEduVocDocument::FileType handled
0038      */
0039     KEduVocDocument::FileType fileTypeHandled() Q_DECL_OVERRIDE;
0040 
0041     /**  @brief Parse file and write into doc
0042      @param doc to be written
0043      @return error status of the read.*/
0044     KEduVocDocument::ErrorCode read(KEduVocDocument &doc) Q_DECL_OVERRIDE;
0045 
0046     /** an error message.
0047         @return the error message
0048      */
0049     QString errorMessage() const Q_DECL_OVERRIDE
0050     {
0051         return m_errorMessage;
0052     }
0053 
0054 private:
0055     QIODevice *m_inputFile; ///< input device
0056     KEduVocDocument *m_doc; ///< output doc
0057     QString m_errorMessage; ///< error message
0058 };
0059 
0060 #endif