libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::mzcbor::ConvertToMzml Class Reference

#include <converttomzml.h>

Inheritance diagram for pappso::cbor::mzcbor::ConvertToMzml:
pappso::cbor::CborStreamReaderInterface

Public Member Functions

 ConvertToMzml (QXmlStreamWriter *p_writer)
virtual ~ConvertToMzml ()
virtual void readCbor (QFile *cborp, pappso::UiMonitorInterface &monitor)
virtual void readCbor (QIODevice *cborp, pappso::UiMonitorInterface &monitor)
virtual void close ()
 convenient function to clean pointer before leaving
Public Member Functions inherited from pappso::cbor::CborStreamReaderInterface
 CborStreamReaderInterface ()
virtual ~CborStreamReaderInterface ()

Protected Member Functions

void readRoot (pappso::UiMonitorInterface &monitor)
void writeElementInMzml (const QString &name, pappso::UiMonitorInterface &monitor)
Protected Member Functions inherited from pappso::cbor::CborStreamReaderInterface
bool getExpectedString ()
void initCborReader (QFile *pcborfile)
void initCborReader (QIODevice *pcborfile)

Private Attributes

QXmlStreamWriter * mp_writer
bool m_isMzcbor = false

Additional Inherited Members

Protected Attributes inherited from pappso::cbor::CborStreamReaderInterface
CborStreamReadermpa_cborReader = nullptr
QString m_expectedString
QByteArray m_data

Detailed Description

Todo
write docs

Definition at line 47 of file converttomzml.h.

Constructor & Destructor Documentation

◆ ConvertToMzml()

pappso::cbor::mzcbor::ConvertToMzml::ConvertToMzml ( QXmlStreamWriter * p_writer)

Default constructor

Definition at line 39 of file converttomzml.cpp.

39 : mp_writer(p_writer)
40{
41}

References mp_writer.

◆ ~ConvertToMzml()

pappso::cbor::mzcbor::ConvertToMzml::~ConvertToMzml ( )
virtual

Destructor

Definition at line 43 of file converttomzml.cpp.

44{
45}

Member Function Documentation

◆ close()

void pappso::cbor::mzcbor::ConvertToMzml::close ( )
virtual

convenient function to clean pointer before leaving

Reimplemented from pappso::cbor::CborStreamReaderInterface.

Definition at line 48 of file converttomzml.cpp.

49{
50}

◆ readCbor() [1/2]

void pappso::cbor::mzcbor::ConvertToMzml::readCbor ( QFile * cborp,
pappso::UiMonitorInterface & monitor )
virtual

Definition at line 53 of file converttomzml.cpp.

54{
55 qDebug();
56 initCborReader(cborp);
57
58 qDebug();
59 if(mpa_cborReader->isMap())
60 {
61 readRoot(monitor);
62 }
63 qDebug();
64}
void readRoot(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::initCborReader(), pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readRoot().

◆ readCbor() [2/2]

void pappso::cbor::mzcbor::ConvertToMzml::readCbor ( QIODevice * cborp,
pappso::UiMonitorInterface & monitor )
virtual

Definition at line 67 of file converttomzml.cpp.

68{
69 qDebug();
70 initCborReader(cborp);
71
72 qDebug();
73 if(mpa_cborReader->isMap())
74 {
75 readRoot(monitor);
76 }
77 qDebug();
78}

References pappso::cbor::CborStreamReaderInterface::initCborReader(), pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readRoot().

◆ readRoot()

void pappso::cbor::mzcbor::ConvertToMzml::readRoot ( pappso::UiMonitorInterface & monitor)
protected

Definition at line 82 of file converttomzml.cpp.

83{
84 qDebug();
85 mpa_cborReader->enterContainer();
86
87 while(getExpectedString())
88 {
89
90 if(m_expectedString == "mzCBOR")
91 {
92 m_isMzcbor = true;
93 mpa_cborReader->next();
94 }
95 else if(m_expectedString == "mzML")
96 {
97
98 QCborMap mzml_cbor;
99 mpa_cborReader->readCborMap(mzml_cbor);
100 //<mzML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
101 // xsi:schemaLocation="http://psi.hupo.org/ms/mzml
102 // http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" version="1.1.0"
103 // id="20120906_balliau_extract_1_A01_urnb-1" xmlns="http://psi.hupo.org/ms/mzml">
104
105
106 mp_writer->setAutoFormatting(true);
107 mp_writer->writeStartDocument("1.0");
108 mp_writer->writeDefaultNamespace(mzml_cbor.value("xmlns").toString());
109
110 mp_writer->writeNamespace("http://www.w3.org/2001/XMLSchema-instance", "xsi");
111
112 mp_writer->writeStartElement("mzML");
113
114 mp_writer->writeAttribute("http://www.w3.org/2001/XMLSchema-instance",
115 "schemaLocation",
116 mzml_cbor.value("schemaLocation").toString());
117
118
119 for(auto &str_key : mzml_cbor.keys())
120 {
121 if((str_key != "xmlns") && (str_key != "schemaLocation"))
122 {
123 mp_writer->writeAttribute(str_key.toString(),
124 mzml_cbor.value(str_key).toString());
125 }
126 }
127
128 m_isMzcbor = true;
129 // getExpectedString();
130 // qDebug() << m_expectedString;
131 // mpa_cborReader->next();
132
133 while(getExpectedString())
134 {
135 qDebug() << m_expectedString;
137 }
138 mp_writer->writeEndElement();
139 }
140 }
141 mpa_cborReader->leaveContainer();
142 mp_writer->writeEndDocument();
143}
void writeElementInMzml(const QString &name, pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, m_isMzcbor, mp_writer, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and writeElementInMzml().

Referenced by readCbor(), and readCbor().

◆ writeElementInMzml()

void pappso::cbor::mzcbor::ConvertToMzml::writeElementInMzml ( const QString & name,
pappso::UiMonitorInterface & monitor )
protected

Definition at line 147 of file converttomzml.cpp.

150{
151 bool is_array = false;
152 if(name == "cvParam")
153 { // this is an array
154 qDebug();
155 CvParamMap cvparam_map;
156 cvparam_map.fromCbor(*mpa_cborReader);
157 for(auto &cvparam_pair : cvparam_map)
158 {
159 cvparam_pair.second.toMzml(*mp_writer);
160 }
161 }
162 else if(name == "binaryDataArray")
163 {
164
165 mp_writer->writeStartElement("binaryDataArrayList");
166
167 mp_writer->writeAttribute("count", QString("%1").arg(mpa_cborReader->length()));
168 mpa_cborReader->enterContainer();
169 while(mpa_cborReader->hasNext())
170 {
171 BinaryDataArray binary_data_array;
172 binary_data_array.fromCbor(*mpa_cborReader);
173 binary_data_array.toMzml(*mp_writer);
174 }
175
176 mpa_cborReader->leaveContainer();
177
178 mp_writer->writeEndElement();
179 }
180 else
181 {
182 if(mpa_cborReader->isArray())
183 {
184 is_array = true;
185 }
186 else if(mpa_cborReader->isMap())
187 {
188 }
189 else
190 {
191 // error
192 qWarning() << "not a map, not an array";
193 }
194 if(is_array)
195 {
196 mpa_cborReader->enterContainer();
197 while(mpa_cborReader->hasNext())
198 {
199 writeElementInMzml(name, monitor);
200 }
201
202 mpa_cborReader->leaveContainer();
203 }
204 else
205 {
206 mp_writer->writeStartElement(name);
207 mpa_cborReader->enterContainer();
208
209 while(getExpectedString())
210 {
211 qDebug() << m_expectedString;
212 QString current_attribute = m_expectedString;
213 if(mpa_cborReader->isContainer())
214 {
215 qDebug() << current_attribute;
216 writeElementInMzml(current_attribute, monitor);
217 }
218 else if(mpa_cborReader->isInteger())
219 {
220 qDebug() << current_attribute;
221 mp_writer->writeAttribute(current_attribute,
222 QString("%1").arg(mpa_cborReader->toInteger()));
223 mpa_cborReader->next();
224 }
225 else if(mpa_cborReader->isUnsignedInteger())
226 {
227 qDebug() << current_attribute;
228 mp_writer->writeAttribute(current_attribute,
229 QString("%1").arg(mpa_cborReader->toUnsignedInteger()));
230 }
231 else if(mpa_cborReader->isString())
232 {
234 qDebug() << current_attribute;
235 mp_writer->writeAttribute(current_attribute, m_expectedString);
236 }
237 else
238 {
239 qDebug() << current_attribute;
240 mpa_cborReader->next();
241 }
242 }
243
244 mpa_cborReader->leaveContainer();
245
246 mp_writer->writeEndElement();
247 }
248 }
249}

References pappso::cbor::mzcbor::BinaryDataArray::fromCbor(), pappso::cbor::mzcbor::CvParamMap::fromCbor(), pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_writer, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, pappso::cbor::mzcbor::BinaryDataArray::toMzml(), and writeElementInMzml().

Referenced by readRoot(), and writeElementInMzml().

Member Data Documentation

◆ m_isMzcbor

bool pappso::cbor::mzcbor::ConvertToMzml::m_isMzcbor = false
private

Definition at line 73 of file converttomzml.h.

Referenced by readRoot().

◆ mp_writer

QXmlStreamWriter* pappso::cbor::mzcbor::ConvertToMzml::mp_writer
private

Definition at line 72 of file converttomzml.h.

Referenced by ConvertToMzml(), readRoot(), and writeElementInMzml().


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