libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::XmlStreamReaderInterface Class Referenceabstract

convenient xml reader helper More...

#include <xmlstreamreaderinterface.h>

Inheritance diagram for pappso::XmlStreamReaderInterface:
pappso::WrapTandemInput pappso::WrapTandemResults pappso::XtandemPresetReader

Public Member Functions

 XmlStreamReaderInterface ()
 
virtual ~XmlStreamReaderInterface ()
 
virtual bool readFile (const QString &fileName)
 
bool read (QIODevice *device)
 
bool read (const QString &xml_content)
 
QString errorString () const
 

Protected Member Functions

virtual void readStream ()=0
 
void cloneStartElement (QXmlStreamWriter &output) const
 
void cloneElement (QXmlStreamWriter &output)
 
void cloneNode (QXmlStreamWriter &output)
 

Protected Attributes

QXmlStreamReader m_qxmlStreamReader
 

Detailed Description

convenient xml reader helper

Definition at line 40 of file xmlstreamreaderinterface.h.

Constructor & Destructor Documentation

◆ XmlStreamReaderInterface()

XmlStreamReaderInterface::XmlStreamReaderInterface ( )

Default constructor

Definition at line 37 of file xmlstreamreaderinterface.cpp.

38{
39}

◆ ~XmlStreamReaderInterface()

XmlStreamReaderInterface::~XmlStreamReaderInterface ( )
virtual

Destructor

Definition at line 41 of file xmlstreamreaderinterface.cpp.

42{
43}

Member Function Documentation

◆ cloneElement()

void pappso::XmlStreamReaderInterface::cloneElement ( QXmlStreamWriter & output)
protected

Definition at line 124 of file xmlstreamreaderinterface.cpp.

125{
126 qDebug() << " name=" << m_qxmlStreamReader.name();
127 output.writeStartElement(m_qxmlStreamReader.namespaceUri().toString(),
128 m_qxmlStreamReader.name().toString());
129 output.writeAttributes(m_qxmlStreamReader.attributes());
130
131 qDebug() << m_qxmlStreamReader.name();
132 while(m_qxmlStreamReader.readNext() && !m_qxmlStreamReader.isEndElement())
133 {
134 cloneNode(output);
135 if(output.hasError())
136 {
137 qDebug();
138 m_qxmlStreamReader.raiseError(QObject::tr("Error in output stream"));
139 }
140 }
141 qDebug();
142 output.writeEndElement();
143}
void cloneNode(QXmlStreamWriter &output)

Referenced by pappso::WrapTandemResults::process_group_note(), and pappso::WrapTandemResults::readStream().

◆ cloneNode()

void pappso::XmlStreamReaderInterface::cloneNode ( QXmlStreamWriter & output)
protected

Definition at line 146 of file xmlstreamreaderinterface.cpp.

147{
148 qDebug();
149 if(m_qxmlStreamReader.isCharacters())
150 {
151 qDebug() << "isCharacters " << m_qxmlStreamReader.text();
152 if((m_qxmlStreamReader.text().toString() == "\n") ||
153 (m_qxmlStreamReader.text().toString() == "\n\t"))
154 {
155 // xml cleaner
156 }
157 else
158 {
159 output.writeCharacters(
160 m_qxmlStreamReader.text().toString().trimmed());
161 }
162 }
163 else if(m_qxmlStreamReader.isEndElement())
164 {
165 qDebug() << "isEndElement";
166 output.writeEndElement();
167 }
168 else if(m_qxmlStreamReader.isStartElement())
169 {
170 qDebug() << "isStartElement";
171 cloneElement(output);
172 }
173 else
174 {
175 }
176 qDebug();
177}
void cloneElement(QXmlStreamWriter &output)

◆ cloneStartElement()

void pappso::XmlStreamReaderInterface::cloneStartElement ( QXmlStreamWriter & output) const
protected

Definition at line 110 of file xmlstreamreaderinterface.cpp.

112{
113 output.writeStartElement(m_qxmlStreamReader.name().toString());
114
115 for(auto declaration : m_qxmlStreamReader.namespaceDeclarations())
116 {
117 output.writeNamespace(declaration.namespaceUri().toString(),
118 declaration.prefix().toString());
119 }
120 output.writeAttributes(m_qxmlStreamReader.attributes());
121}

Referenced by pappso::WrapTandemResults::process_group_note(), pappso::WrapTandemInput::readStream(), and pappso::WrapTandemResults::readStream().

◆ errorString()

QString pappso::XmlStreamReaderInterface::errorString ( ) const

Definition at line 46 of file xmlstreamreaderinterface.cpp.

47{
48 if(m_qxmlStreamReader.errorString().isEmpty())
49 return "";
50 else
51 {
52 QString error = QObject::tr("ERROR at line %1 column %2\n%3")
53 .arg(m_qxmlStreamReader.lineNumber())
54 .arg(m_qxmlStreamReader.columnNumber())
55 .arg(m_qxmlStreamReader.errorString());
56 return error;
57 }
58}

Referenced by pappso::TandemWrapperRun::readTandemPresetFile(), pappso::TandemWrapperRun::wrapTandemInputFile(), and pappso::TandemWrapperRun::writeFinalTandemOutput().

◆ read() [1/2]

bool pappso::XmlStreamReaderInterface::read ( const QString & xml_content)

Definition at line 100 of file xmlstreamreaderinterface.cpp.

101{
102 m_qxmlStreamReader.clear();
103 m_qxmlStreamReader.addData(xml_content);
104 m_qxmlStreamReader.setNamespaceProcessing(true);
105 readStream();
106
107 return !m_qxmlStreamReader.error();
108}

◆ read() [2/2]

bool pappso::XmlStreamReaderInterface::read ( QIODevice * device)

Definition at line 89 of file xmlstreamreaderinterface.cpp.

90{
91
92 m_qxmlStreamReader.setDevice(device);
93 m_qxmlStreamReader.setNamespaceProcessing(true);
94 readStream();
95
96 return !m_qxmlStreamReader.error();
97}

◆ readFile()

bool pappso::XmlStreamReaderInterface::readFile ( const QString & fileName)
virtual

Definition at line 61 of file xmlstreamreaderinterface.cpp.

62{
63 QFile file(fileName);
64 if(!file.open(QFile::ReadOnly | QFile::Text))
65 {
66 m_qxmlStreamReader.raiseError(
67 QObject::tr("Cannot read file %1 : %2")
68 .arg(QFileInfo(fileName).absoluteFilePath())
69 .arg(m_qxmlStreamReader.errorString()));
70 return false;
71 }
72
73 if(read(&file))
74 {
75 file.close();
76 return true;
77 }
78 else
79 {
80 file.close();
81 m_qxmlStreamReader.raiseError(
82 QObject::tr("Error reading file %1 : %2")
83 .arg(QFileInfo(fileName).absoluteFilePath())
84 .arg(m_qxmlStreamReader.errorString()));
85 return false;
86 }
87}

Referenced by pappso::TandemWrapperRun::readTandemPresetFile(), pappso::TandemWrapperRun::wrapTandemInputFile(), and pappso::TandemWrapperRun::writeFinalTandemOutput().

◆ readStream()

virtual void pappso::XmlStreamReaderInterface::readStream ( )
protectedpure virtual

Member Data Documentation

◆ m_qxmlStreamReader


The documentation for this class was generated from the following files: