libpappsomspp
Library for mass spectrometry
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: