Mass++ Common Libraries v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations Macros
MsDataVariant.cpp
Go to the documentation of this file.
1 
12 #include "stdafx.h"
13 #include "MsDataVariant.h"
14 
15 #include "Spectrum.h"
16 #include "Chromatogram.h"
17 #include "DataMapInfo.h"
18 #include "DataGroupNode.h"
19 #include "Sample.h"
20 #include "SampleSet.h"
21 
22 
23 using namespace kome::objects;
24 
25 
26 #include <crtdbg.h>
27 #ifdef _DEBUG
28  #define new new( _NORMAL_BLOCK, __FILE__, __LINE__ )
29  #define malloc( s ) _malloc_dbg( s, _NORMAL_BLOCK, __FILE__, __LINE__ )
30 #endif // _DEBUG
31 
32 
33 
34 // constructor
36 }
37 
38 // constructor
39 MsDataVariant::MsDataVariant( Variant& var ) : m_var( var ) {
40 }
41 
42 // destructor
44 }
45 
46 // set variant object
48  m_var = var;
49 }
50 
51 // get variant object
53  return m_var;
54 }
55 
56 // unset object
58  m_var.type = Variant::OTHER;
59  m_var.prim.pt = NULL;
60 }
61 
62 // set spectrum
64  if( spec == NULL ) {
65  unsetObject();
66  }
67 
68  m_var.type = Variant::SPECTRUM;
69  m_var.prim.pt = spec;
70 }
71 
72 // set chromatogram
74  if( chrom == NULL ) {
75  unsetObject();
76  }
77 
78  m_var.type = Variant::CHROMATOGRAM;
79  m_var.prim.pt = chrom;
80 }
81 
82 // set data map
84  if( dataMap == NULL ) {
85  unsetObject();
86  }
87 
88  m_var.type = Variant::DATA_MAP;
89  m_var.prim.pt = dataMap;
90 }
91 
92 // set group
94  if( group == NULL ) {
95  unsetObject();
96  }
97 
98  m_var.type = Variant::DATA_GROUP_NODE;
99  m_var.prim.pt = group;
100 }
101 
102 // set sample
104  if( sample == NULL ) {
105  unsetObject();
106  }
107 
108  m_var.type = Variant::SAMPLE;
109  m_var.prim.pt = sample;
110 }
111 
112 // set sample set
114  if( sampleSet == NULL ) {
115  unsetObject();
116  }
117 
118  m_var.type = Variant::SAMPLE_SET;
119  m_var.prim.pt = sampleSet;
120 }
121 
122 // get spectrum
124  Spectrum* spec = NULL;
125  if( m_var.type == Variant::SPECTRUM ) {
126  spec = (Spectrum*)m_var.prim.pt;
127  }
128 
129  return spec;
130 }
131 
132 // get chromatogram
134  Chromatogram* chrom = NULL;
135  if( m_var.type == Variant::CHROMATOGRAM ) {
136  chrom = (Chromatogram*)m_var.prim.pt;
137  }
138 
139  return chrom;
140 }
141 
142 // get data map
144  DataMapInfo* dm = NULL;
145  if( m_var.type == Variant::DATA_MAP ) {
146  dm = (DataMapInfo*)m_var.prim.pt;
147  }
148 
149  return dm;
150 }
151 
152 // get group
154  DataGroupNode* group = NULL;
155 
156  if( m_var.type == Variant::DATA_GROUP_NODE ) { // group
157  group = (DataGroupNode*)m_var.prim.pt;
158  }
159  else { // etc
160  Spectrum* spec = getSpectrum();
161  Chromatogram* chrom = getChromatogram();
162  DataMapInfo* dm = getDataMap();
163 
164  if( spec != NULL ) {
165  group = spec->getGroup();
166  }
167  else if( chrom != NULL ) {
168  group = chrom->getGroup();
169  }
170  else if( dm != NULL ) {
171  group = &( dm->getGroup() );
172  }
173  }
174 
175  return group;
176 }
177 
178 // get sample
180  Sample* sample = NULL;
181 
182  if( m_var.type == Variant::SAMPLE ) { // sample
183  sample = (Sample*)m_var.prim.pt;
184  }
185  else { // get sample from group
186  DataGroupNode* group = getGroup();
187  if( group != NULL ) {
188  sample = group->getSample();
189  }
190  }
191 
192  return sample;
193 }
194 
195 // get sample set
197  SampleSet* sampleSet = NULL;
198 
199  if( m_var.type == Variant::SAMPLE_SET ) { // sample set
200  sampleSet = (SampleSet*)m_var.prim.pt;
201  }
202  else { // get sample set from sample
203  Sample* sample = getSample();
204  if( sample != NULL ) {
205  sampleSet = sample->getSampleSet();
206  }
207  }
208 
209  return sampleSet;
210 }
void unsetObject()
unsets object
Variant & getVariant()
gets variant object
group of spectrum management class
Definition: DataGroupNode.h:33
sample set information management class
Definition: SampleSet.h:29
DataGroupNode * getGroup()
gets group
interfaces of Chromatogram class
void setSpectrum(Spectrum *spec)
sets spectrum
Sample * getSample()
gets sample
SampleSet * getSampleSet()
gets sample set object
Definition: Sample.cpp:77
interfaces of MsDataVariant class
sample information management class
Definition: Sample.h:34
DataGroupNode * getGroup()
gets spectrum group
void setVariant(Variant &var)
sets variant object
void setSample(Sample *sample)
sets sample
void setSampleSet(SampleSet *sampleSet)
sets sample set
interfaces of SampleSet class
deta map information
Definition: DataMapInfo.h:31
void setGroup(DataGroupNode *group)
sets group
interfaces of Spectrum class
virtual ~MsDataVariant()
destructor
interfaces of DataGroupNode class
interfaces of Sample class
interfaces of GraphInfo class
DataGroupNode & getGroup()
gets raw data
Definition: DataMapInfo.cpp:91
void setChromatogram(Chromatogram *chrom)
sets chromatogram
#define NULL
Definition: CoreMacros.h:18
class that treats data of various types
Definition: Variant.h:26
DataGroupNode * getGroup()
gets spectrum group
Definition: Spectrum.cpp:898
void setDataMap(DataMapInfo *dataMap)
sets data map
Spectrum * getSpectrum()
gets spectrum
spectrum information management class
Definition: Spectrum.h:30
Sample * getSample()
gets sample
Definition: DataSet.cpp:49
SampleSet * getSampleSet()
gets sample set
chromatogram information management class
Definition: Chromatogram.h:33
DataMapInfo * getDataMap()
gets data map
Chromatogram * getChromatogram()
gets chromatogram