Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkEnumerationProperty.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkEnumerationProperty_h
14 #define mitkEnumerationProperty_h
15 
16 #include <mitkBaseProperty.h>
17 
18 #include <map>
19 #include <string>
20 
21 #ifdef _MSC_VER
22 # pragma warning(push)
23 # pragma warning(disable: 4522) // "multiple assignment operators specified"
24 #endif
25 
26 namespace mitk
27 {
44  {
45  public:
47  itkFactorylessNewMacro(Self);
48  itkCloneMacro(Self);
49 
53  typedef unsigned int IdType;
54 
58  typedef std::map<IdType, std::string> EnumIdsContainerType;
59 
63  typedef std::map<std::string, IdType> EnumStringsContainerType;
64 
68  typedef EnumIdsContainerType::const_iterator EnumConstIterator;
69 
80  virtual bool AddEnum(const std::string &name, const IdType &id);
81 
87  virtual bool SetValue(const std::string &name);
88 
94  virtual bool SetValue(const IdType &id);
95 
100  virtual IdType GetValueAsId() const;
101 
106  std::string GetValueAsString() const override;
107 
111  virtual void Clear();
112 
116  virtual EnumIdsContainerType::size_type Size() const;
117 
123  virtual EnumConstIterator Begin() const;
124 
129  virtual EnumConstIterator End() const;
130 
137  virtual std::string GetEnumString(const IdType &id) const;
138 
145  virtual IdType GetEnumId(const std::string &name) const;
146 
152  virtual bool IsValidEnumerationValue(const IdType &id) const;
153 
159  virtual bool IsValidEnumerationValue(const std::string &name) const;
160 
163 
166 
172  bool ToJSON(nlohmann::json& j) const override;
173 
179  bool FromJSON(const nlohmann::json& j) override;
180 
181  using BaseProperty::operator=;
183 
184  protected:
189 
191 
192  bool IsEqual(const BaseProperty &property) const override;
193  bool Assign(const BaseProperty &property) override;
194 
196 
197  private:
198  IdType m_CurrentValue;
199  EnumIdsContainerType m_IdMap;
200  EnumStringsContainerType m_NameMap;
201  };
202 }
203 
204 #ifdef _MSC_VER
205 # pragma warning(pop)
206 #endif
207 
208 #endif
#define MITKCORE_EXPORT
Abstract base class for properties.
virtual bool IsValidEnumerationValue(const IdType &id) const
bool FromJSON(const nlohmann::json &j) override
virtual bool SetValue(const IdType &id)
virtual EnumConstIterator End() const
const EnumStringsContainerType & GetEnumStrings() const
virtual bool IsValidEnumerationValue(const std::string &name) const
virtual bool AddEnum(const std::string &name, const IdType &id)
virtual std::string GetEnumString(const IdType &id) const
std::map< std::string, IdType > EnumStringsContainerType
bool IsEqual(const BaseProperty &property) const override
virtual IdType GetValueAsId() const
EnumIdsContainerType::const_iterator EnumConstIterator
bool Assign(const BaseProperty &property) override
EnumerationProperty(const EnumerationProperty &)
EnumStringsContainerType & GetEnumStrings()
virtual EnumConstIterator Begin() const
virtual bool SetValue(const std::string &name)
const EnumIdsContainerType & GetEnumIds() const
EnumerationProperty & operator=(const EnumerationProperty &)=delete
std::string GetValueAsString() const override
EnumIdsContainerType & GetEnumIds()
mitkClassMacro(EnumerationProperty, BaseProperty)
bool ToJSON(nlohmann::json &j) const override
virtual IdType GetEnumId(const std::string &name) const
virtual EnumIdsContainerType::size_type Size() const
std::map< IdType, std::string > EnumIdsContainerType
nlohmann::json json
Find image slices visible on a given plane.