Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkCoreObjectFactory.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 mitkCoreObjectFactory_h
14 #define mitkCoreObjectFactory_h
15 
16 #include <set>
17 
20 #include <MitkCoreExports.h>
21 namespace mitk
22 {
23  class Event;
24  class LegacyFileReaderService;
25  class LegacyFileWriterService;
26  class LegacyImageWriterService;
27 
29  {
30  public:
32  itkFactorylessNewMacro(CoreObjectFactory);
33 
35  void SetDefaultProperties(mitk::DataNode *node) override;
36 
37  virtual void MapEvent(const mitk::Event *event, const int eventID);
38 
41 
42  static Pointer GetInstance();
43 
44  ~CoreObjectFactory() override;
45 
54  DEPRECATED(virtual std::string GetFileExtensions() override);
55 
63 
72  DEPRECATED(virtual std::string GetSaveFileExtensions() override);
73 
81 
86 
90  DEPRECATED(std::string GetDescriptionForExtension(const std::string &extension));
91 
92  protected:
94 
105  void MergeFileExtensions(MultimapType &fileExtensionsMap, MultimapType inputMap);
106 
112 
117 
118  typedef std::set<mitk::CoreObjectFactoryBase::Pointer> ExtraFactoriesContainer;
119 
122  std::string m_FileExtensions;
124  std::string m_SaveFileExtensions;
126 
127  private:
128  void RegisterLegacyReaders(mitk::CoreObjectFactoryBase *factory);
129  void RegisterLegacyWriters(mitk::CoreObjectFactoryBase *factory);
130 
131  void UnRegisterLegacyReaders(mitk::CoreObjectFactoryBase *factory);
132  void UnRegisterLegacyWriters(mitk::CoreObjectFactoryBase *factory);
133 
134  std::map<mitk::CoreObjectFactoryBase *, std::list<mitk::LegacyFileReaderService *>> m_LegacyReaders;
135  std::map<mitk::CoreObjectFactoryBase *, std::list<mitk::LegacyFileWriterService *>> m_LegacyWriters;
136  };
137 
138 } // namespace mitk
139 
140 #endif
#define MITKCORE_EXPORT
std::multimap< std::string, std::string > MultimapType
std::list< mitk::FileWriterWithInformation::Pointer > FileWriterList
virtual void UnRegisterExtraFactory(CoreObjectFactoryBase *factory)
std::string GetDescriptionForExtension(const std::string &extension)
virtual FileWriterList GetFileWriters()
virtual std::string GetFileExtensions() override
This method gets the supported (open) file extensions as string.
static Pointer GetInstance()
virtual MultimapType GetFileExtensionsMap() override
get the defined (open) file extension map
Mapper::Pointer CreateMapper(mitk::DataNode *node, MapperSlotId slotId) override
virtual std::string GetSaveFileExtensions() override
This method gets the supported (save) file extensions as string.
void MergeFileExtensions(MultimapType &fileExtensionsMap, MultimapType inputMap)
Merge the input map into the fileExtensionsMap. Duplicate entries are removed.
std::set< mitk::CoreObjectFactoryBase::Pointer > ExtraFactoriesContainer
void CreateFileExtensionsMap()
initialize the file extension entries for open and save
~CoreObjectFactory() override
virtual void RegisterExtraFactory(CoreObjectFactoryBase *factory)
MultimapType GetSaveFileExtensionsMap() override
get the defined (save) file extension map
void SetDefaultProperties(mitk::DataNode *node) override
ExtraFactoriesContainer m_ExtraFactories
virtual void MapEvent(const mitk::Event *event, const int eventID)
Class for nodes of the DataTree.
Definition: mitkDataNode.h:64
unsigned int MapperSlotId
Definition: mitkCommon.h:29
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
#define DEPRECATED(func)
Definition: mitkCommon.h:175
Find image slices visible on a given plane.