Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkPropertyRelations.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 mitkPropertyRelations_h
14 #define mitkPropertyRelations_h
15 
16 #include <map>
17 #include <mitkIPropertyRelations.h>
18 
19 namespace mitk
20 {
22  {
23  public:
25  ~PropertyRelations() override;
26 
30 
31  bool AddRule(const PropertyRelationRuleBase *rule, bool overwrite = false) override;
32 
33  RuleResultVectorType GetRulesForSource(const IPropertyProvider* source) const override;
34 
35  RuleResultVectorType GetRulesForSourceCandidate(const IPropertyProvider* sourceCandidate) const override;
36 
37  RuleResultVectorType GetRulesForDestinationCandidate(const IPropertyProvider* destCandidate) const override;
38 
39  PropertyRelationRuleBase::ConstPointer GetRule(const RuleIDType &ruleID) const override;
40 
41  RuleIDVectorType GetRuleIDs() const override;
42 
43  bool HasRuleForSource(const IPropertyProvider* source) const override;
44 
45  void RemoveAllRules() override;
46 
47  void RemoveRule(const RuleIDType &ruleID) override;
48 
49  private:
50  using RuleMap = std::map<const std::string, PropertyRelationRuleBase::ConstPointer>;
51 
53  PropertyRelations &operator=(const PropertyRelations &);
54 
55  RuleMap m_RuleMap;
56  };
57 
60 }
61 
62 #endif
Interface of property relations service.
#define MITKCORE_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
bool HasRuleForSource(const IPropertyProvider *source) const override
Check if a passed instance has defined relation covered by the registered rules.
std::list< PropertyRelationRuleBase::ConstPointer > RuleResultVectorType
MITKCORE_EXPORT IPropertyRelations * CreateTestInstancePropertyRelations()
RuleResultVectorType GetRulesForSource(const IPropertyProvider *source) const override
Get all relation rules the passed source is really a source of. (PropertyRelationRuleBase::IsSource()...
bool AddRule(const PropertyRelationRuleBase *rule, bool overwrite=false) override
Add rule for a specific relation. If there is already a property rule instance it won&#39;t be added...
PropertyRelationRuleBase::RuleIDType RuleIDType
void RemoveRule(const RuleIDType &ruleID) override
Remove relation rule instance with the passed ID. If rule does not exist nothing happens.
RuleIDVectorType GetRuleIDs() const override
Get all IDs of registered rules.
void RemoveAllRules() override
Remove all relation rules.
RuleResultVectorType GetRulesForDestinationCandidate(const IPropertyProvider *destCandidate) const override
Get all relation rules that would accept the passed IPropertOwner as destination. ...
PropertyRelationRuleBase::ConstPointer GetRule(const RuleIDType &ruleID) const override
Get the relation rule that has the specfied ruleID.
std::vector< RuleIDType > RuleIDVectorType
RuleResultVectorType GetRulesForSourceCandidate(const IPropertyProvider *sourceCandidate) const override
Get all relation rules that would accept the passed IPropertOwner as source.