libpappsomspp
Library for mass spectrometry
pappso::XtandemInputSaxHandler Class Reference

#include <xtandeminputsaxhandler.h>

Inheritance diagram for pappso::XtandemInputSaxHandler:

Public Member Functions

 XtandemInputSaxHandler (const QString &destinationMzXmlFile, const QString &destinationTandemInputFile, const QString &destinationTandemOutputFile)
 
 ~XtandemInputSaxHandler ()
 
bool startElement (const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes) override
 
bool endElement (const QString &namespaceURI, const QString &localName, const QString &qName) override
 
bool startDocument () override
 
bool endDocument () override
 
bool characters (const QString &str) override
 
bool fatalError (const QXmlParseException &exception) override
 
bool error (const QXmlParseException &exception) override
 
QString errorString () const
 
const QString & getOriginalMsDataFileName () const
 
const QString & getOriginalTandemOutputFileName () const
 
const QString & getOriginalTandemPresetFileName () const
 

Private Member Functions

bool startElement_note (QXmlAttributes attributes)
 
bool endElement_note ()
 
void writeOpenTag (const QString &qName, const QXmlAttributes &attributes)
 

Private Attributes

QString m_destinationMzXmlFileName
 
QString m_originMzDataFileName
 
QString m_destinationTandemInputFileName
 
QString m_originTandemPresetFileName
 
QString m_originTandemOutpuFileName
 
QString m_destinationTandemOutputFileName
 
QFile m_destinationTandemInputFile
 
QXmlStreamWriter * p_writeXmlTandemInput
 
std::vector< QString > m_tagStack
 
bool m_isTandemParameter = false
 
QString m_errorString
 
QString m_currentText
 
QString m_currentLabel
 
QString m_labelName
 

Detailed Description

Definition at line 56 of file xtandeminputsaxhandler.h.

Constructor & Destructor Documentation

◆ XtandemInputSaxHandler()

pappso::XtandemInputSaxHandler::XtandemInputSaxHandler ( const QString &  destinationMzXmlFile,
const QString &  destinationTandemInputFile,
const QString &  destinationTandemOutputFile 
)

Default constructor

Definition at line 52 of file xtandeminputsaxhandler.cpp.

52  {
54  QObject::tr("ERROR: unable to open %1 tandem output file for write")
55  .arg(destinationTandemInputFile));
56  }
57 
58  p_writeXmlTandemInput = new QXmlStreamWriter();
60 }
61 
63 {
64  if(p_writeXmlTandemInput != nullptr)
65  {
67  delete p_writeXmlTandemInput;
68  }
69 }
70 
71 void
72 XtandemInputSaxHandler::writeOpenTag(const QString &qName,
73  const QXmlAttributes &attributes)
74 {
75  p_writeXmlTandemInput->writeStartElement(qName);
76  for(int i = 0; i < attributes.length(); i++)
77  {
78  p_writeXmlTandemInput->writeAttribute(attributes.qName(i),

◆ ~XtandemInputSaxHandler()

pappso::XtandemInputSaxHandler::~XtandemInputSaxHandler ( )

Destructor

Definition at line 80 of file xtandeminputsaxhandler.cpp.

89 {

Member Function Documentation

◆ characters()

bool pappso::XtandemInputSaxHandler::characters ( const QString &  str)
override

Definition at line 248 of file xtandeminputsaxhandler.cpp.

253 {

◆ endDocument()

bool pappso::XtandemInputSaxHandler::endDocument ( )
override

Definition at line 237 of file xtandeminputsaxhandler.cpp.

239 {
240  m_errorString = QObject::tr(
241  "Parse error at line %1, column %2 :\n"
242  "%3")
243  .arg(exception.lineNumber())
244  .arg(exception.columnNumber())
245  .arg(exception.message());

References m_errorString.

◆ endElement()

bool pappso::XtandemInputSaxHandler::endElement ( const QString &  namespaceURI,
const QString &  localName,
const QString &  qName 
)
override

Definition at line 182 of file xtandeminputsaxhandler.cpp.

185  {
186  m_errorString = QObject::tr(
187  "ERROR in XtandemInputSaxHandler::endElement tag "
188  "%1, PAPPSO exception:\n%2")
189  .arg(qName)
190  .arg(exception_pappso.qwhat());
191  return false;
192  }
193  catch(std::exception &exception_std)
194  {
195  m_errorString = QObject::tr(
196  "ERROR in XtandemInputSaxHandler::endElement tag "
197  "%1, std exception:\n%2")
198  .arg(qName)
199  .arg(exception_std.what());
200  return false;
201  }
202 
203  m_currentText.clear();
204  m_tagStack.pop_back();
205 
206  return is_ok;
207 }
208 
209 bool
211 {
212 
213  p_writeXmlTandemInput->setAutoFormatting(true);
214  p_writeXmlTandemInput->writeStartDocument("1.0");
215  return true;
216 }
217 
218 bool
220 {
221  p_writeXmlTandemInput->writeEndDocument();
222 
224  delete p_writeXmlTandemInput;
225  p_writeXmlTandemInput = nullptr;

◆ endElement_note()

bool pappso::XtandemInputSaxHandler::endElement_note ( )
private

Definition at line 310 of file xtandeminputsaxhandler.cpp.

316  {
317  p_writeXmlTandemInput->writeCharacters(m_currentText);
318  }
319  p_writeXmlTandemInput->writeEndElement();
320  return true;
321 }
322 
323 
324 const QString &
326 {
327  return m_originMzDataFileName;
328 }
329 
330 const QString &
332 {
334 }
335 
336 const QString &
338 {

◆ error()

bool pappso::XtandemInputSaxHandler::error ( const QXmlParseException &  exception)
override

Definition at line 256 of file xtandeminputsaxhandler.cpp.

266 {

◆ errorString()

QString pappso::XtandemInputSaxHandler::errorString ( ) const

Definition at line 283 of file xtandeminputsaxhandler.cpp.

◆ fatalError()

bool pappso::XtandemInputSaxHandler::fatalError ( const QXmlParseException &  exception)
override

Definition at line 270 of file xtandeminputsaxhandler.cpp.

273 {
274  // qDebug() << "XtandemParamSaxHandler::startElement_note begin " <<
275  // <note type="input"
276  // label="output,path">/gorgone/pappso/jouy/users/Celine/2019_Lumos/20191222_107_Juste_APD/metapappso_condor/test_run/20191222_18_EF1_third_step_test_condor_22janv.xml</note>
277 
278  writeOpenTag("note", attributes);
279  m_currentLabel = "";
280 

References m_currentLabel, and writeOpenTag().

◆ getOriginalMsDataFileName()

const QString & pappso::XtandemInputSaxHandler::getOriginalMsDataFileName ( ) const

Definition at line 343 of file xtandeminputsaxhandler.cpp.

◆ getOriginalTandemOutputFileName()

const QString & pappso::XtandemInputSaxHandler::getOriginalTandemOutputFileName ( ) const

Definition at line 349 of file xtandeminputsaxhandler.cpp.

◆ getOriginalTandemPresetFileName()

const QString & pappso::XtandemInputSaxHandler::getOriginalTandemPresetFileName ( ) const

Definition at line 355 of file xtandeminputsaxhandler.cpp.

◆ startDocument()

bool pappso::XtandemInputSaxHandler::startDocument ( )
override

Definition at line 228 of file xtandeminputsaxhandler.cpp.

231 {
232  m_currentText += str;
233  return true;
234 }

References m_currentText.

◆ startElement()

bool pappso::XtandemInputSaxHandler::startElement ( const QString &  namespaceURI,
const QString &  localName,
const QString &  qName,
const QXmlAttributes &  attributes 
)
override

Definition at line 102 of file xtandeminputsaxhandler.cpp.

111  {
112  m_currentText.clear();
113  //<bioml label="example api document">
114  if(m_tagStack.size() == 1)
115  {
116  if(qName != "bioml")
117  {
118  m_errorString = QObject::tr(
119  "ERROR in XtandemInputSaxHandler::startElement "
120  "root tag %1 is not <bioml>")
121  .arg(qName);
122  m_isTandemParameter = false;
123  return false;
124  }
125  else
126  {
127 
128  m_isTandemParameter = true;
129  // label="20191222_18_EF1_test_condor_22janv_third_step.xml"
130  m_labelName = attributes.value("label");
131 
132  writeOpenTag(qName, attributes);
133  }
134  }
135  // startElement_group
136 
137  if(qName == "note")
138  {
139  is_ok = startElement_note(attributes);
140  }
141  }
142  catch(pappso::PappsoException &exception_pappso)
143  {
144  m_errorString = QObject::tr(
145  "ERROR in XtandemInputSaxHandler::startElement "
146  "tag %1, PAPPSO exception:\n%2")
147  .arg(qName)
148  .arg(exception_pappso.qwhat());
149  return false;
150  }
151  catch(std::exception &exception_std)
152  {
153  m_errorString = QObject::tr(
154  "ERROR in XtandemInputSaxHandler::startElement "
155  "tag %1, std exception:\n%2")
156  .arg(qName)
157  .arg(exception_std.what());
158  return false;
159  }
160  return is_ok;
161 }
162 
163 bool
164 XtandemInputSaxHandler::endElement([[maybe_unused]] const QString &namespaceURI,
165  [[maybe_unused]] const QString &localName,
166  const QString &qName)
167 {
168 
169  bool is_ok = true;
170  // endElement_peptide_list
171  try
172  {
173 
174  if(qName == "note")
175  {
176  is_ok = endElement_note();
177  }
178  else
179  {

References m_currentText, m_errorString, m_isTandemParameter, m_labelName, m_tagStack, startElement_note(), and writeOpenTag().

◆ startElement_note()

bool pappso::XtandemInputSaxHandler::startElement_note ( QXmlAttributes  attributes)
private

Definition at line 290 of file xtandeminputsaxhandler.cpp.

293 {
294  // qDebug() << "XtandemParamSaxHandler::endElement_note begin " <<
295  // _current_label << " " << _current_text.simplified();
296  if(m_currentLabel == "output, path")
297  {
300  }
301  else if(m_currentLabel == "list path, default parameters")
302  {
303  // <note type="input" label="list path, default parameters">
304  p_writeXmlTandemInput->writeCharacters(m_currentText);
306  QFileInfo(m_currentText).absoluteFilePath();
307  }

References m_currentLabel, m_currentText, m_destinationTandemOutputFileName, m_originTandemOutpuFileName, m_originTandemPresetFileName, and p_writeXmlTandemInput.

Referenced by startElement().

◆ writeOpenTag()

void pappso::XtandemInputSaxHandler::writeOpenTag ( const QString &  qName,
const QXmlAttributes &  attributes 
)
private

Definition at line 90 of file xtandeminputsaxhandler.cpp.

111  {

Referenced by fatalError(), and startElement().

Member Data Documentation

◆ m_currentLabel

QString pappso::XtandemInputSaxHandler::m_currentLabel
private

Definition at line 134 of file xtandeminputsaxhandler.h.

Referenced by fatalError(), and startElement_note().

◆ m_currentText

QString pappso::XtandemInputSaxHandler::m_currentText
private

Definition at line 133 of file xtandeminputsaxhandler.h.

Referenced by startDocument(), startElement(), and startElement_note().

◆ m_destinationMzXmlFileName

QString pappso::XtandemInputSaxHandler::m_destinationMzXmlFileName
private

Definition at line 122 of file xtandeminputsaxhandler.h.

◆ m_destinationTandemInputFile

QFile pappso::XtandemInputSaxHandler::m_destinationTandemInputFile
private

Definition at line 128 of file xtandeminputsaxhandler.h.

◆ m_destinationTandemInputFileName

QString pappso::XtandemInputSaxHandler::m_destinationTandemInputFileName
private

Definition at line 124 of file xtandeminputsaxhandler.h.

◆ m_destinationTandemOutputFileName

QString pappso::XtandemInputSaxHandler::m_destinationTandemOutputFileName
private

Definition at line 127 of file xtandeminputsaxhandler.h.

Referenced by startElement_note().

◆ m_errorString

QString pappso::XtandemInputSaxHandler::m_errorString
private

Definition at line 132 of file xtandeminputsaxhandler.h.

Referenced by endDocument(), and startElement().

◆ m_isTandemParameter

bool pappso::XtandemInputSaxHandler::m_isTandemParameter = false
private

Definition at line 131 of file xtandeminputsaxhandler.h.

Referenced by startElement().

◆ m_labelName

QString pappso::XtandemInputSaxHandler::m_labelName
private

Definition at line 135 of file xtandeminputsaxhandler.h.

Referenced by startElement().

◆ m_originMzDataFileName

QString pappso::XtandemInputSaxHandler::m_originMzDataFileName
private

Definition at line 123 of file xtandeminputsaxhandler.h.

◆ m_originTandemOutpuFileName

QString pappso::XtandemInputSaxHandler::m_originTandemOutpuFileName
private

Definition at line 126 of file xtandeminputsaxhandler.h.

Referenced by startElement_note().

◆ m_originTandemPresetFileName

QString pappso::XtandemInputSaxHandler::m_originTandemPresetFileName
private

Definition at line 125 of file xtandeminputsaxhandler.h.

Referenced by startElement_note().

◆ m_tagStack

std::vector<QString> pappso::XtandemInputSaxHandler::m_tagStack
private

Definition at line 130 of file xtandeminputsaxhandler.h.

Referenced by startElement().

◆ p_writeXmlTandemInput

QXmlStreamWriter* pappso::XtandemInputSaxHandler::p_writeXmlTandemInput
private

Definition at line 129 of file xtandeminputsaxhandler.h.

Referenced by startElement_note().


The documentation for this class was generated from the following files:
pappso::XtandemInputSaxHandler::m_currentText
QString m_currentText
Definition: xtandeminputsaxhandler.h:133
pappso::XtandemInputSaxHandler::m_destinationTandemInputFile
QFile m_destinationTandemInputFile
Definition: xtandeminputsaxhandler.h:128
pappso::XtandemInputSaxHandler::startDocument
bool startDocument() override
Definition: xtandeminputsaxhandler.cpp:228
pappso::XtandemInputSaxHandler::endElement_note
bool endElement_note()
Definition: xtandeminputsaxhandler.cpp:310
pappso::XtandemInputSaxHandler::~XtandemInputSaxHandler
~XtandemInputSaxHandler()
Definition: xtandeminputsaxhandler.cpp:80
pappso::XtandemInputSaxHandler::m_labelName
QString m_labelName
Definition: xtandeminputsaxhandler.h:135
pappso::XtandemInputSaxHandler::m_currentLabel
QString m_currentLabel
Definition: xtandeminputsaxhandler.h:134
pappso::XtandemInputSaxHandler::p_writeXmlTandemInput
QXmlStreamWriter * p_writeXmlTandemInput
Definition: xtandeminputsaxhandler.h:129
pappso::XtandemInputSaxHandler::m_originTandemOutpuFileName
QString m_originTandemOutpuFileName
Definition: xtandeminputsaxhandler.h:126
pappso::XtandemInputSaxHandler::writeOpenTag
void writeOpenTag(const QString &qName, const QXmlAttributes &attributes)
Definition: xtandeminputsaxhandler.cpp:90
pappso::XtandemInputSaxHandler::endElement
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override
Definition: xtandeminputsaxhandler.cpp:182
pappso::XtandemInputSaxHandler::getOriginalTandemOutputFileName
const QString & getOriginalTandemOutputFileName() const
Definition: xtandeminputsaxhandler.cpp:349
pappso::XtandemInputSaxHandler::startElement_note
bool startElement_note(QXmlAttributes attributes)
Definition: xtandeminputsaxhandler.cpp:290
pappso::PappsoException::qwhat
virtual const QString & qwhat() const
Definition: pappsoexception.h:108
pappso::XtandemInputSaxHandler::m_originMzDataFileName
QString m_originMzDataFileName
Definition: xtandeminputsaxhandler.h:123
pappso::XtandemInputSaxHandler::getOriginalTandemPresetFileName
const QString & getOriginalTandemPresetFileName() const
Definition: xtandeminputsaxhandler.cpp:355
pappso::XtandemInputSaxHandler::endDocument
bool endDocument() override
Definition: xtandeminputsaxhandler.cpp:237
pappso::XtandemInputSaxHandler::m_originTandemPresetFileName
QString m_originTandemPresetFileName
Definition: xtandeminputsaxhandler.h:125
pappso::XtandemInputSaxHandler::m_errorString
QString m_errorString
Definition: xtandeminputsaxhandler.h:132
pappso::XtandemInputSaxHandler::getOriginalMsDataFileName
const QString & getOriginalMsDataFileName() const
Definition: xtandeminputsaxhandler.cpp:343
pappso::XtandemInputSaxHandler::m_isTandemParameter
bool m_isTandemParameter
Definition: xtandeminputsaxhandler.h:131
pappso::PappsoException
Definition: pappsoexception.h:63
pappso::XtandemInputSaxHandler::m_tagStack
std::vector< QString > m_tagStack
Definition: xtandeminputsaxhandler.h:130
pappso::XtandemInputSaxHandler::m_destinationTandemOutputFileName
QString m_destinationTandemOutputFileName
Definition: xtandeminputsaxhandler.h:127