pappsomspp
Library for mass spectrometry
pappso::XtandemOutputSaxHandler Class Reference

#include <xtandemoutputsaxhandler.h>

Inheritance diagram for pappso::XtandemOutputSaxHandler:

Public Member Functions

 XtandemOutputSaxHandler (const QString &final_tandem_output, const QString &original_msdata_file_name)
 
 ~XtandemOutputSaxHandler ()
 
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
 
void setInputParameters (const QString &label_name_attribute, const QString &input_value)
 

Private Member Functions

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

Private Attributes

std::map< QString, QString > m_mapTandemInputParameters
 
std::vector< QString > m_tagStack
 
QFile m_destinationTandemOutputFile
 
QXmlStreamWriter * p_writeXmlTandemOutput
 
QString m_errorString
 
QString m_currentText
 
bool m_isTandemParameter = false
 
QString m_currentLabel
 
QString m_originalMsDataFileName
 

Detailed Description

Definition at line 54 of file xtandemoutputsaxhandler.h.

Constructor & Destructor Documentation

◆ XtandemOutputSaxHandler()

pappso::XtandemOutputSaxHandler::XtandemOutputSaxHandler ( const QString &  final_tandem_output,
const QString &  original_msdata_file_name 
)

Default constructor

Definition at line 51 of file xtandemoutputsaxhandler.cpp.

54 {
55  if(p_writeXmlTandemOutput != nullptr)
56  {
59  }
60 }
61 
62 void
63 XtandemOutputSaxHandler::writeOpenTag(const QString &qName,
64  const QXmlAttributes &attributes)
65 {
66  p_writeXmlTandemOutput->writeStartElement(qName);
67  for(std::size_t i = 0; i < attributes.length(); i++)

◆ ~XtandemOutputSaxHandler()

pappso::XtandemOutputSaxHandler::~XtandemOutputSaxHandler ( )

Destructor

Definition at line 69 of file xtandemoutputsaxhandler.cpp.

79 {

Member Function Documentation

◆ characters()

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

Definition at line 229 of file xtandemoutputsaxhandler.cpp.

◆ endDocument()

bool pappso::XtandemOutputSaxHandler::endDocument ( )
override

Definition at line 218 of file xtandemoutputsaxhandler.cpp.

226 {

◆ endElement()

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

Definition at line 164 of file xtandemoutputsaxhandler.cpp.

168  {
169  m_errorString = QObject::tr(
170  "ERROR in XtandemOutputSaxHandler::endElement tag "
171  "%1, PAPPSO exception:\n%2")
172  .arg(qName)
173  .arg(exception_pappso.qwhat());
174  return false;
175  }
176  catch(std::exception exception_std)
177  {
178  m_errorString = QObject::tr(
179  "ERROR in XtandemOutputSaxHandler::endElement tag "
180  "%1, std exception:\n%2")
181  .arg(qName)
182  .arg(exception_std.what());
183  return false;
184  }
185 
186  m_currentText.clear();
187  m_tagStack.pop_back();
188 
189  return is_ok;
190 }
191 
192 bool
194 {
195 
196  p_writeXmlTandemOutput->setAutoFormatting(true);
197  p_writeXmlTandemOutput->writeStartDocument("1.0");
198  return true;
199 }
200 
201 bool
203 {
204  p_writeXmlTandemOutput->writeEndDocument();
205 

◆ endElement_note()

bool pappso::XtandemOutputSaxHandler::endElement_note ( )
private

Definition at line 295 of file xtandemoutputsaxhandler.cpp.

296  {
297  p_writeXmlTandemOutput->writeStartElement("note");
298  p_writeXmlTandemOutput->writeAttribute("type", "input");
299  p_writeXmlTandemOutput->writeAttribute("label", pair_input.first);
300  p_writeXmlTandemOutput->writeCharacters(pair_input.second);
301  p_writeXmlTandemOutput->writeEndElement();
302  }
303  }
304  else if(m_currentLabel == "output, path")
305  {
306  //<note type="input" label="output,
307  // path">/tmp/tandemwrapper-sSGxtE/output_tandem.xml</note>
308  p_writeXmlTandemOutput->writeCharacters(
309  QFileInfo(m_destinationTandemOutputFile).absoluteFilePath());
310  p_writeXmlTandemOutput->writeEndElement();
311  }
312  else
313  {
314  p_writeXmlTandemOutput->writeCharacters(m_currentText);
315  p_writeXmlTandemOutput->writeEndElement();
316  }
317  return true;
318 }
319 
320 void
321 XtandemOutputSaxHandler::setInputParameters(const QString &label_name_attribute,
322  const QString &input_value)
323 {
325  std::pair<QString, QString>(label_name_attribute, input_value));
326 }
327 } // namespace pappso

References p_writeXmlTandemOutput.

◆ error()

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

Definition at line 241 of file xtandemoutputsaxhandler.cpp.

242  :\n"
243  "%3")
244  .arg(exception.lineNumber())
245  .arg(exception.columnNumber())
246  .arg(exception.message());
247  qDebug() << m_errorString;
248  return false;
249 }
250 
251 QString

◆ errorString()

QString pappso::XtandemOutputSaxHandler::errorString ( ) const

Definition at line 268 of file xtandemoutputsaxhandler.cpp.

269  {
270  m_currentLabel = attributes.value("label");
271  }

References m_currentLabel.

◆ fatalError()

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

Definition at line 255 of file xtandemoutputsaxhandler.cpp.

260 {
261  // qDebug() << "XtandemParamSaxHandler::startElement_note begin " <<
262  // <note type="input"
263  // 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>
264 
265  writeOpenTag("note", attributes);

◆ setInputParameters()

void pappso::XtandemOutputSaxHandler::setInputParameters ( const QString &  label_name_attribute,
const QString &  input_value 
)

◆ startDocument()

bool pappso::XtandemOutputSaxHandler::startDocument ( )
override

Definition at line 209 of file xtandemoutputsaxhandler.cpp.

214 {
215  m_currentText += str;

◆ startElement()

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

Definition at line 91 of file xtandemoutputsaxhandler.cpp.

100  {
101 
102  m_isTandemParameter = true;
103 
104  // <bioml xmlns:GAML="http://www.bioml.com/gaml/" label="models
105  // from '/tmp/msdata.mzxml'">
106  p_writeXmlTandemOutput->writeStartElement("bioml");
107  p_writeXmlTandemOutput->writeAttribute("xmlns:GAML",
108  attributes.value("xmlns:GAML"));
109  p_writeXmlTandemOutput->writeAttribute(
110  "label",
111  QString("models from '%1'").arg(m_originalMsDataFileName));
112  return true;
113  }
114  }
115  // startElement_group
116 
117  if(qName == "note")
118  {
119  is_ok = startElement_note(attributes);
120  }
121  else
122  {
123  writeOpenTag(qName, attributes);
124  }
125  }
126  catch(pappso::PappsoException exception_pappso)
127  {
128  m_errorString = QObject::tr(
129  "ERROR in XtandemOutputSaxHandler::startElement "
130  "tag %1, PAPPSO exception:\n%2")
131  .arg(qName)
132  .arg(exception_pappso.qwhat());
133  return false;
134  }
135  catch(std::exception exception_std)
136  {
137  m_errorString = QObject::tr(
138  "ERROR in XtandemOutputSaxHandler::startElement "
139  "tag %1, std exception:\n%2")
140  .arg(qName)
141  .arg(exception_std.what());
142  return false;
143  }
144  return is_ok;
145 }
146 
147 bool
148 XtandemOutputSaxHandler::endElement(const QString &namespaceURI,
149  const QString &localName,
150  const QString &qName)
151 {
152 
153  bool is_ok = true;
154  // endElement_peptide_list
155  try
156  {
157 
158  if(qName == "note")
159  {
160  is_ok = endElement_note();
161  }

◆ startElement_note()

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

Definition at line 275 of file xtandemoutputsaxhandler.cpp.

280 {
281  // qDebug() << "XtandemParamSaxHandler::endElement_note begin " <<
282  // <note type="input" label="spectrum,
283  // path">/tmp/tandemwrapper-IehrEL/msdata.mzxml</note>
284 
285  if(m_currentLabel == "spectrum, path")
286  {
287  //<note type="input"
288  // label="spectrum,path">/gorgone/pappso/jouy/raw/2019_Lumos/20191222_107_Juste/20191222_18_EF1.mzXML</note>
289  // m_originMzDataFileName = m_currentText;
290  // p_writeXmlTandemOutput->writeCharacters(m_destinationMzXmlFileName);
292  p_writeXmlTandemOutput->writeEndElement();

◆ writeOpenTag()

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

Definition at line 79 of file xtandemoutputsaxhandler.cpp.

79 {
80  m_tagStack.push_back(qName);
81  bool is_ok = true;
82 
83  try
84  {
85  m_currentText.clear();
86  //<bioml label="example api document">
87  if(m_tagStack.size() == 1)
88  {

References m_currentText, and m_tagStack.

Member Data Documentation

◆ m_currentLabel

QString pappso::XtandemOutputSaxHandler::m_currentLabel
private

Definition at line 122 of file xtandemoutputsaxhandler.h.

Referenced by errorString().

◆ m_currentText

QString pappso::XtandemOutputSaxHandler::m_currentText
private

Definition at line 120 of file xtandemoutputsaxhandler.h.

Referenced by writeOpenTag().

◆ m_destinationTandemOutputFile

QFile pappso::XtandemOutputSaxHandler::m_destinationTandemOutputFile
private

Definition at line 117 of file xtandemoutputsaxhandler.h.

◆ m_errorString

QString pappso::XtandemOutputSaxHandler::m_errorString
private

Definition at line 119 of file xtandemoutputsaxhandler.h.

◆ m_isTandemParameter

bool pappso::XtandemOutputSaxHandler::m_isTandemParameter = false
private

Definition at line 121 of file xtandemoutputsaxhandler.h.

◆ m_mapTandemInputParameters

std::map<QString, QString> pappso::XtandemOutputSaxHandler::m_mapTandemInputParameters
private

Definition at line 115 of file xtandemoutputsaxhandler.h.

◆ m_originalMsDataFileName

QString pappso::XtandemOutputSaxHandler::m_originalMsDataFileName
private

Definition at line 123 of file xtandemoutputsaxhandler.h.

◆ m_tagStack

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

Definition at line 116 of file xtandemoutputsaxhandler.h.

Referenced by writeOpenTag().

◆ p_writeXmlTandemOutput

QXmlStreamWriter* pappso::XtandemOutputSaxHandler::p_writeXmlTandemOutput
private

Definition at line 118 of file xtandemoutputsaxhandler.h.

Referenced by endElement_note().


The documentation for this class was generated from the following files:
pappso::XtandemOutputSaxHandler::m_destinationTandemOutputFile
QFile m_destinationTandemOutputFile
Definition: xtandemoutputsaxhandler.h:117
pappso::XtandemOutputSaxHandler::m_originalMsDataFileName
QString m_originalMsDataFileName
Definition: xtandemoutputsaxhandler.h:123
pappso::XtandemOutputSaxHandler::m_currentLabel
QString m_currentLabel
Definition: xtandemoutputsaxhandler.h:122
pappso::XtandemOutputSaxHandler::startElement_note
bool startElement_note(QXmlAttributes attributes)
Definition: xtandemoutputsaxhandler.cpp:275
pappso::XtandemOutputSaxHandler::endElement_note
bool endElement_note()
Definition: xtandemoutputsaxhandler.cpp:295
pappso::XtandemOutputSaxHandler::m_mapTandemInputParameters
std::map< QString, QString > m_mapTandemInputParameters
Definition: xtandemoutputsaxhandler.h:115
pappso::XtandemOutputSaxHandler::m_isTandemParameter
bool m_isTandemParameter
Definition: xtandemoutputsaxhandler.h:121
pappso::XtandemOutputSaxHandler::endElement
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override
Definition: xtandemoutputsaxhandler.cpp:164
pappso::XtandemOutputSaxHandler::m_errorString
QString m_errorString
Definition: xtandemoutputsaxhandler.h:119
pappso::XtandemOutputSaxHandler::p_writeXmlTandemOutput
QXmlStreamWriter * p_writeXmlTandemOutput
Definition: xtandemoutputsaxhandler.h:118
pappso::XtandemOutputSaxHandler::writeOpenTag
void writeOpenTag(const QString &qName, const QXmlAttributes &attributes)
Definition: xtandemoutputsaxhandler.cpp:79
pappso::XtandemOutputSaxHandler::endDocument
bool endDocument() override
Definition: xtandemoutputsaxhandler.cpp:218
pappso::XtandemOutputSaxHandler::m_currentText
QString m_currentText
Definition: xtandemoutputsaxhandler.h:120
pappso::PappsoException::qwhat
virtual const QString & qwhat() const
Definition: pappsoexception.h:105
pappso::XtandemOutputSaxHandler::m_tagStack
std::vector< QString > m_tagStack
Definition: xtandemoutputsaxhandler.h:116
pappso::XtandemOutputSaxHandler::setInputParameters
void setInputParameters(const QString &label_name_attribute, const QString &input_value)
Definition: xtandemoutputsaxhandler.cpp:337
pappso::PappsoException
Definition: pappsoexception.h:60
pappso::XtandemOutputSaxHandler::startDocument
bool startDocument() override
Definition: xtandemoutputsaxhandler.cpp:209