pappsomspp
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 54 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 50 of file xtandeminputsaxhandler.cpp.

57 {
58  if(p_writeXmlTandemInput != nullptr)
59  {
61  delete p_writeXmlTandemInput;
62  }
63 }
64 
65 void
66 XtandemInputSaxHandler::writeOpenTag(const QString &qName,
67  const QXmlAttributes &attributes)
68 {
69  p_writeXmlTandemInput->writeStartElement(qName);
70  for(int i = 0; i < attributes.length(); i++)

◆ ~XtandemInputSaxHandler()

pappso::XtandemInputSaxHandler::~XtandemInputSaxHandler ( )

Destructor

Definition at line 72 of file xtandeminputsaxhandler.cpp.

82 {

Member Function Documentation

◆ characters()

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

Definition at line 239 of file xtandeminputsaxhandler.cpp.

◆ endDocument()

bool pappso::XtandemInputSaxHandler::endDocument ( )
override

Definition at line 228 of file xtandeminputsaxhandler.cpp.

232 {
233  m_errorString = QObject::tr(
234  "Parse error at line %1, column %2 :\n"
235  "%3")
236  .arg(exception.lineNumber())

References m_errorString.

◆ endElement()

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

Definition at line 173 of file xtandeminputsaxhandler.cpp.

178  {
179  m_errorString = QObject::tr(
180  "ERROR in XtandemInputSaxHandler::endElement tag "
181  "%1, PAPPSO exception:\n%2")
182  .arg(qName)
183  .arg(exception_pappso.qwhat());
184  return false;
185  }
186  catch(std::exception &exception_std)
187  {
188  m_errorString = QObject::tr(
189  "ERROR in XtandemInputSaxHandler::endElement tag "
190  "%1, std exception:\n%2")
191  .arg(qName)
192  .arg(exception_std.what());
193  return false;
194  }
195 
196  m_currentText.clear();
197  m_tagStack.pop_back();
198 
199  return is_ok;
200 }
201 
202 bool
204 {
205 
206  p_writeXmlTandemInput->setAutoFormatting(true);
207  p_writeXmlTandemInput->writeStartDocument("1.0");
208  return true;
209 }
210 
211 bool
213 {
214  p_writeXmlTandemInput->writeEndDocument();
215 

◆ endElement_note()

bool pappso::XtandemInputSaxHandler::endElement_note ( )
private

Definition at line 301 of file xtandeminputsaxhandler.cpp.

302  {
303  //<note type="input"
304  // label="spectrum,path">/gorgone/pappso/jouy/raw/2019_Lumos/20191222_107_Juste/20191222_18_EF1.mzXML</note>
307  }
308  else
309  {
310  p_writeXmlTandemInput->writeCharacters(m_currentText);
311  }
312  p_writeXmlTandemInput->writeEndElement();
313  return true;
314 }
315 
316 
317 const QString &
319 {
320  return m_originMzDataFileName;
321 }
322 
323 const QString &
325 {
327 }
328 
329 const QString &

References m_currentText, m_destinationMzXmlFileName, m_originMzDataFileName, and p_writeXmlTandemInput.

◆ error()

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

Definition at line 247 of file xtandeminputsaxhandler.cpp.

248  :\n"
249  "%3")
250  .arg(exception.lineNumber())
251  .arg(exception.columnNumber())
252  .arg(exception.message());
253  qDebug() << m_errorString;
254  return false;
255 }
256 
257 QString

◆ errorString()

QString pappso::XtandemInputSaxHandler::errorString ( ) const

Definition at line 274 of file xtandeminputsaxhandler.cpp.

275  {
276  m_currentLabel = attributes.value("label");
277  }

References m_currentLabel.

◆ fatalError()

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

Definition at line 261 of file xtandeminputsaxhandler.cpp.

266 {
267  // qDebug() << "XtandemParamSaxHandler::startElement_note begin " <<
268  // <note type="input"
269  // 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>
270 
271  writeOpenTag("note", attributes);

◆ getOriginalMsDataFileName()

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

Definition at line 334 of file xtandeminputsaxhandler.cpp.

◆ getOriginalTandemOutputFileName()

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

Definition at line 340 of file xtandeminputsaxhandler.cpp.

◆ getOriginalTandemPresetFileName()

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

Definition at line 346 of file xtandeminputsaxhandler.cpp.

◆ startDocument()

bool pappso::XtandemInputSaxHandler::startDocument ( )
override

Definition at line 219 of file xtandeminputsaxhandler.cpp.

224 {
225  m_currentText += str;

◆ startElement()

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

Definition at line 94 of file xtandeminputsaxhandler.cpp.

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

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 281 of file xtandeminputsaxhandler.cpp.

286 {
287  // qDebug() << "XtandemParamSaxHandler::endElement_note begin " <<
288  // _current_label << " " << _current_text.simplified();
289  if(m_currentLabel == "output, path")
290  {
293  }
294  else if(m_currentLabel == "list path, default parameters")
295  {
296  // <note type="input" label="list path, default parameters">
297  p_writeXmlTandemInput->writeCharacters(m_currentText);

Referenced by startElement().

◆ writeOpenTag()

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

Definition at line 82 of file xtandeminputsaxhandler.cpp.

82 {
83  /*
84 <?xml version="1.0" encoding="UTF-8"?>
85 <bioml label="20191222_18_EF1_test_condor_22janv_third_step.xml">
86 <note type="heading">Paths</note>
87 <note type="input" label="list path, default
88 parameters">/gorgone/pappso/jouy/presets/metapappso/Lumos_04112019_PROTEOCARDIS_THIRD_STEP_AB.xml</note>
89 <note type="input" label="list path, taxonomy
90 information">/gorgone/pappso/jouy/users/Celine/2019_Lumos/20191222_107_Juste_APD/metapappso_condor/params/xtandem_database_third_step_test_condor_22janv.database</note>
91 <note type="input" label="spectrum,

Referenced by startElement().

Member Data Documentation

◆ m_currentLabel

QString pappso::XtandemInputSaxHandler::m_currentLabel
private

Definition at line 131 of file xtandeminputsaxhandler.h.

Referenced by errorString().

◆ m_currentText

QString pappso::XtandemInputSaxHandler::m_currentText
private

Definition at line 130 of file xtandeminputsaxhandler.h.

Referenced by endElement_note(), and startElement().

◆ m_destinationMzXmlFileName

QString pappso::XtandemInputSaxHandler::m_destinationMzXmlFileName
private

Definition at line 119 of file xtandeminputsaxhandler.h.

Referenced by endElement_note().

◆ m_destinationTandemInputFile

QFile pappso::XtandemInputSaxHandler::m_destinationTandemInputFile
private

Definition at line 125 of file xtandeminputsaxhandler.h.

◆ m_destinationTandemInputFileName

QString pappso::XtandemInputSaxHandler::m_destinationTandemInputFileName
private

Definition at line 121 of file xtandeminputsaxhandler.h.

◆ m_destinationTandemOutputFileName

QString pappso::XtandemInputSaxHandler::m_destinationTandemOutputFileName
private

Definition at line 124 of file xtandeminputsaxhandler.h.

◆ m_errorString

QString pappso::XtandemInputSaxHandler::m_errorString
private

Definition at line 129 of file xtandeminputsaxhandler.h.

Referenced by endDocument(), and startElement().

◆ m_isTandemParameter

bool pappso::XtandemInputSaxHandler::m_isTandemParameter = false
private

Definition at line 128 of file xtandeminputsaxhandler.h.

Referenced by startElement().

◆ m_labelName

QString pappso::XtandemInputSaxHandler::m_labelName
private

Definition at line 132 of file xtandeminputsaxhandler.h.

Referenced by startElement().

◆ m_originMzDataFileName

QString pappso::XtandemInputSaxHandler::m_originMzDataFileName
private

Definition at line 120 of file xtandeminputsaxhandler.h.

Referenced by endElement_note().

◆ m_originTandemOutpuFileName

QString pappso::XtandemInputSaxHandler::m_originTandemOutpuFileName
private

Definition at line 123 of file xtandeminputsaxhandler.h.

◆ m_originTandemPresetFileName

QString pappso::XtandemInputSaxHandler::m_originTandemPresetFileName
private

Definition at line 122 of file xtandeminputsaxhandler.h.

◆ m_tagStack

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

Definition at line 127 of file xtandeminputsaxhandler.h.

Referenced by startElement().

◆ p_writeXmlTandemInput

QXmlStreamWriter* pappso::XtandemInputSaxHandler::p_writeXmlTandemInput
private

Definition at line 126 of file xtandeminputsaxhandler.h.

Referenced by endElement_note().


The documentation for this class was generated from the following files:
pappso::XtandemInputSaxHandler::m_currentText
QString m_currentText
Definition: xtandeminputsaxhandler.h:130
pappso::XtandemInputSaxHandler::m_destinationTandemInputFile
QFile m_destinationTandemInputFile
Definition: xtandeminputsaxhandler.h:125
pappso::XtandemInputSaxHandler::startDocument
bool startDocument() override
Definition: xtandeminputsaxhandler.cpp:219
pappso::XtandemInputSaxHandler::endElement_note
bool endElement_note()
Definition: xtandeminputsaxhandler.cpp:301
pappso::XtandemInputSaxHandler::m_labelName
QString m_labelName
Definition: xtandeminputsaxhandler.h:132
pappso::XtandemInputSaxHandler::m_currentLabel
QString m_currentLabel
Definition: xtandeminputsaxhandler.h:131
pappso::XtandemInputSaxHandler::p_writeXmlTandemInput
QXmlStreamWriter * p_writeXmlTandemInput
Definition: xtandeminputsaxhandler.h:126
pappso::XtandemInputSaxHandler::m_originTandemOutpuFileName
QString m_originTandemOutpuFileName
Definition: xtandeminputsaxhandler.h:123
pappso::XtandemInputSaxHandler::writeOpenTag
void writeOpenTag(const QString &qName, const QXmlAttributes &attributes)
Definition: xtandeminputsaxhandler.cpp:82
pappso::XtandemInputSaxHandler::endElement
bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override
Definition: xtandeminputsaxhandler.cpp:173
pappso::XtandemInputSaxHandler::getOriginalTandemOutputFileName
const QString & getOriginalTandemOutputFileName() const
Definition: xtandeminputsaxhandler.cpp:340
pappso::XtandemInputSaxHandler::startElement_note
bool startElement_note(QXmlAttributes attributes)
Definition: xtandeminputsaxhandler.cpp:281
pappso::PappsoException::qwhat
virtual const QString & qwhat() const
Definition: pappsoexception.h:105
pappso::XtandemInputSaxHandler::m_destinationMzXmlFileName
QString m_destinationMzXmlFileName
Definition: xtandeminputsaxhandler.h:119
pappso::XtandemInputSaxHandler::m_originMzDataFileName
QString m_originMzDataFileName
Definition: xtandeminputsaxhandler.h:120
pappso::XtandemInputSaxHandler::getOriginalTandemPresetFileName
const QString & getOriginalTandemPresetFileName() const
Definition: xtandeminputsaxhandler.cpp:346
pappso::XtandemInputSaxHandler::endDocument
bool endDocument() override
Definition: xtandeminputsaxhandler.cpp:228
pappso::XtandemInputSaxHandler::m_originTandemPresetFileName
QString m_originTandemPresetFileName
Definition: xtandeminputsaxhandler.h:122
pappso::XtandemInputSaxHandler::m_errorString
QString m_errorString
Definition: xtandeminputsaxhandler.h:129
pappso::XtandemInputSaxHandler::getOriginalMsDataFileName
const QString & getOriginalMsDataFileName() const
Definition: xtandeminputsaxhandler.cpp:334
pappso::XtandemInputSaxHandler::m_isTandemParameter
bool m_isTandemParameter
Definition: xtandeminputsaxhandler.h:128
pappso::PappsoException
Definition: pappsoexception.h:60
pappso::XtandemInputSaxHandler::m_tagStack
std::vector< QString > m_tagStack
Definition: xtandeminputsaxhandler.h:127
pappso::XtandemInputSaxHandler::m_destinationTandemOutputFileName
QString m_destinationTandemOutputFileName
Definition: xtandeminputsaxhandler.h:124