ome-xml 5.2.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

FilamentType.h
1 /*
2 * #%L
3 * OME-XML C++ library for working with OME-XML metadata structures.
4 * %%
5 * Copyright © 2006 - 2016 Open Microscopy Environment:
6 * - Massachusetts Institute of Technology
7 * - National Institutes of Health
8 * - University of Dundee
9 * - Board of Regents of the University of Wisconsin-Madison
10 * - Glencoe Software, Inc.
11 * %%
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions are met:
14 *
15 * 1. Redistributions of source code must retain the above copyright notice,
16 * this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 * The views and conclusions contained in the software and documentation are
34 * those of the authors and should not be interpreted as representing official
35 * policies, either expressed or implied, of any organization.
36 * #L%
37 */
38
39 /*─────────────────────────────────────────────────────────────────────────────
40 *
41 * THIS IS AUTOMATICALLY GENERATED CODE. DO NOT MODIFY.
42 *
43 *─────────────────────────────────────────────────────────────────────────────
44 */
45
46 #ifndef OME_XML_MODEL_ENUMS_FILAMENTTYPE_H
47 #define OME_XML_MODEL_ENUMS_FILAMENTTYPE_H
48
49 #include <ostream>
50 #include <map>
51 #include <string>
52
53 #include <ome/common/log.h>
54
55 #include <ome/xml/model/enums/EnumerationException.h>
56
57 // All values in the FilamentType enumeration.
58 #define OME_XML_MODEL_ENUMS_FILAMENTTYPE_VALUES (INCANDESCENT)(HALOGEN)(OTHER)
59
60 namespace ome
61 {
62 namespace xml
63 {
64 namespace model
65 {
66 namespace enums
67 {
68
72 class FilamentType
73 {
74 public:
76 enum enum_value
77 {
79 INCANDESCENT,
81 HALOGEN,
83 OTHER
84 };
85
91 FilamentType (enum_value value);
92
107 FilamentType (const std::string& name, bool strict = true);
108
114 FilamentType (const FilamentType& original);
115
120 inline FilamentType&
121 operator= (const FilamentType& rhs)
122 {
123 this->value = rhs.value;
124 this->name = rhs.name;
125 return *this;
126 }
127
133 inline
134 operator enum_value () const
135 {
136 return this->value;
137 }
138
144 inline
145 operator const std::string& () const
146 {
147 return *this->name;
148 }
149
151 typedef std::map<std::string, FilamentType::enum_value> string_map_type;
153 typedef std::map<FilamentType::enum_value, std::string> value_map_type;
154
160 static const string_map_type&
161 strings();
162
168 static const value_map_type&
169 values();
170
171 private:
177 static const string_map_type&
178 lowercase_strings();
179
181 enum_value value;
183 const std::string *name;
184 };
185
193 inline bool
194 operator== (const FilamentType& lhs,
195 const FilamentType& rhs)
196 {
197 return static_cast<FilamentType::enum_value>(lhs) == static_cast<FilamentType::enum_value>(rhs);
198 }
199
207 inline bool
208 operator== (const FilamentType& lhs,
209 const FilamentType::enum_value& rhs)
210 {
211 return static_cast<FilamentType::enum_value>(lhs) == rhs;
212 }
213
221 inline bool
222 operator== (const FilamentType::enum_value& lhs,
223 const FilamentType& rhs)
224 {
225 return lhs == static_cast<FilamentType::enum_value>(rhs);
226 }
227
235 inline bool
236 operator== (const FilamentType& lhs,
237 const std::string& rhs)
238 {
239 return static_cast<const std::string&>(lhs) == rhs;
240 }
241
249 inline bool
250 operator== (const std::string& lhs,
251 const FilamentType& rhs)
252 {
253 return lhs == static_cast<const std::string&>(rhs);
254 }
255
263 inline bool
264 operator!= (const FilamentType& lhs,
265 const FilamentType& rhs)
266 {
267 return static_cast<FilamentType::enum_value>(lhs) != static_cast<FilamentType::enum_value>(rhs);
268 }
269
277 inline bool
278 operator!= (const FilamentType& lhs,
279 const FilamentType::enum_value& rhs)
280 {
281 return static_cast<FilamentType::enum_value>(lhs) != rhs;
282 }
283
291 inline bool
292 operator!= (const FilamentType::enum_value& lhs,
293 const FilamentType& rhs)
294 {
295 return lhs != static_cast<FilamentType::enum_value>(rhs);
296 }
297
305 inline bool
306 operator!= (const FilamentType& lhs,
307 const std::string& rhs)
308 {
309 return static_cast<const std::string&>(lhs) != rhs;
310 }
311
319 inline bool
320 operator!= (const std::string& lhs,
321 const FilamentType& rhs)
322 {
323 return lhs != static_cast<const std::string&>(rhs);
324 }
325
333 template<class charT, class traits>
334 inline std::basic_ostream<charT,traits>&
335 operator<< (std::basic_ostream<charT,traits>& os,
336 const FilamentType& enumeration)
337 {
338 return os << static_cast<const std::string&>(enumeration);
339 }
340
348 template<class charT, class traits>
349 inline std::basic_istream<charT,traits>&
350 operator>> (std::basic_istream<charT,traits>& is,
351 FilamentType& enumeration)
352 {
353 std::string value;
354 is >> value;
355 if (is)
356 {
357 try
358 {
359 enumeration = FilamentType(value, false);
360 }
361 catch (const EnumerationException&)
362 {
363 is.setstate(std::ios::failbit);
364 }
365 }
366
367 return is;
368 }
369
370 }
371 }
372 }
373 }
374
375 #endif // OME_XML_MODEL_ENUMS_FILAMENTTYPE_H
376
377 /*
378 * Local Variables:
379 * mode:C++
380 * End:
381 */
ome::xml::model::enums::operator>>
std::basic_istream< charT, traits > & operator>>(std::basic_istream< charT, traits > &is, AcquisitionMode &enumeration)
Set AcquisitionMode from input stream.
Definition: AcquisitionMode.h:384
ome::xml::model::enums::FilamentType
FilamentType enumeration.
Definition: FilamentType.h:72
ome::xml::model::enums::operator!=
bool operator!=(const AcquisitionMode &lhs, const AcquisitionMode &rhs)
Compare two AcquisitionMode objects for non-equality.
Definition: AcquisitionMode.h:298
ome::xml::model::enums::FilamentType::strings
static const string_map_type & strings()
Get a map of valid string names and enum values.
Definition: FilamentType.cpp:153
ome::xml::model::enums::FilamentType::values
static const value_map_type & values()
Get a map of valid enum values and string names.
Definition: FilamentType.cpp:169
ome::xml::model::enums::EnumerationException
EnumerationException is thrown when an enumeration is invalid or not found.
Definition: EnumerationException.h:74
ome::xml::model::enums::FilamentType::enum_value
enum_value
Enumeration values.
Definition: FilamentType.h:76
ome::xml::model::enums::FilamentType::INCANDESCENT
Incandescent.
Definition: FilamentType.h:79
ome::xml::model::enums::FilamentType::FilamentType
FilamentType(enum_value value)
Construct a FilamentType enumeration by an enumeration value.
Definition: FilamentType.cpp:75
ome::xml::model::enums::FilamentType::string_map_type
std::map< std::string, FilamentType::enum_value > string_map_type
String map type.
Definition: FilamentType.h:151
ome::xml::model::enums::FilamentType::operator=
FilamentType & operator=(const FilamentType &rhs)
Assignment operator.
Definition: FilamentType.h:121
ome::xml::model::enums::FilamentType::name
const std::string * name
Enumeration name.
Definition: FilamentType.h:183
ome::xml::model::enums::FilamentType::HALOGEN
Halogen.
Definition: FilamentType.h:81
ome
Open Microscopy Environment C++ implementation.
ome::xml::model::enums::FilamentType::value
enum_value value
Enumeration value.
Definition: FilamentType.h:181
ome::xml::model::enums::operator==
bool operator==(const AcquisitionMode &lhs, const AcquisitionMode &rhs)
Compare two AcquisitionMode objects for equality.
Definition: AcquisitionMode.h:228
ome::xml::model::enums::FilamentType::OTHER
Other.
Definition: FilamentType.h:83
ome::xml::model::enums::FilamentType::value_map_type
std::map< FilamentType::enum_value, std::string > value_map_type
Value map type.
Definition: FilamentType.h:153
log.h
ome::xml::model::enums::FilamentType::lowercase_strings
static const string_map_type & lowercase_strings()
Get a map of valid lowercased string names and enum values.
Definition: FilamentType.cpp:185