Medical Imaging Interaction Toolkit  2018.4.99-b5518f0d
Medical Imaging Interaction Toolkit
mitkPropertyPersistence.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 mitkPropertyPersistence_h
14 #define mitkPropertyPersistence_h
15 
16 #include <map>
18 
19 namespace mitk
20 {
22  {
23  public:
25  ~PropertyPersistence() override;
26 
28 
29  bool AddInfo(const PropertyPersistenceInfo *info, bool overwrite) override;
30  InfoResultType GetInfo(const std::string &propertyName, bool allowNameRegEx) const override;
31  InfoResultType GetInfo(const std::string &propertyName,
32  const MimeTypeNameType &mime,
33  bool allowMimeWildCard,
34  bool allowNameRegEx) const override;
35  InfoResultType GetInfoByKey(const std::string &persistenceKey, bool allowKeyRegEx) const override;
36  bool HasInfo(const std::string &propertyName, bool allowNameRegEx) const override;
37  void RemoveAllInfo() override;
38  void RemoveInfo(const std::string &propertyName) override;
39  void RemoveInfo(const std::string &propertyName, const MimeTypeNameType &mime) override;
40 
41  private:
42  typedef std::multimap<const std::string, PropertyPersistenceInfo::ConstPointer> InfoMap;
43 
45  using SelectFunctionType = std::function<bool(const InfoMap::value_type &)>;
46  static InfoMap SelectInfo(const InfoMap &infoMap, const SelectFunctionType &selectFunction);
47 
49  PropertyPersistence &operator=(const PropertyPersistence &);
50 
51  InfoMap m_InfoMap;
52  };
53 
56 }
57 
58 #endif
void RemoveAllInfo() override
Remove all persistence info.
#define MITKCORE_EXPORT
void RemoveInfo(const std::string &propertyName) override
Remove persistence info instances of a specific property name/regex.
DataCollection - Class to facilitate loading/accessing structured data.
IPropertyPersistence::InfoResultType InfoResultType
MITKCORE_EXPORT IPropertyPersistence * CreateTestInstancePropertyPersistence()
Property persistence info. This class is used to specify the way the persistance of a property of Bas...
InfoResultType GetInfoByKey(const std::string &persistenceKey, bool allowKeyRegEx) const override
Get the persistence info that will use the specified key.
bool AddInfo(const PropertyPersistenceInfo *info, bool overwrite) override
Add persistence info for a specific base data property. If there is already a property info instance ...
bool HasInfo(const std::string &propertyName, bool allowNameRegEx) const override
Check if a specific base data property has persistence info.
Interface of property persistence service.
std::list< PropertyPersistenceInfo::ConstPointer > InfoResultType
InfoResultType GetInfo(const std::string &propertyName, bool allowNameRegEx) const override
Get the persistence info for a specific base data property.
PropertyPersistenceInfo::MimeTypeNameType MimeTypeNameType