13 #ifndef mitkIPropertyRelations_h
14 #define mitkIPropertyRelations_h
Interface of property relations service.
virtual bool AddRule(const PropertyRelationRuleBase *rule, bool overwrite=false)=0
Add rule for a specific relation. If there is already a property rule instance it won't be added....
virtual RuleResultVectorType GetRulesForSource(const IPropertyProvider *source) const =0
Get all relation rules the passed source is really a source of. (PropertyRelationRuleBase::IsSource()...
std::vector< RuleIDType > RuleIDVectorType
virtual bool HasRuleForSource(const IPropertyProvider *source) const =0
Check if a passed instance has defined relation covered by the registered rules.
virtual RuleResultVectorType GetRulesForSourceCandidate(const IPropertyProvider *sourceCandidate) const =0
Get all relation rules that would accept the passed IPropertOwner as source.
virtual RuleResultVectorType GetRulesForDestinationCandidate(const IPropertyProvider *destCandidate) const =0
Get all relation rules that would accept the passed IPropertOwner as destination.
virtual PropertyRelationRuleBase::ConstPointer GetRule(const RuleIDType &ruleID) const =0
Get the relation rule that has the specified ruleID.
virtual ~IPropertyRelations()
virtual void RemoveRule(const RuleIDType &ruleID)=0
Remove relation rule instance with the passed ID. If rule does not exist nothing happens.
virtual RuleIDVectorType GetRuleIDs() const =0
Get all IDs of registered rules.
virtual void RemoveAllRules()=0
Remove all relation rules.
PropertyRelationRuleBase::RuleIDType RuleIDType
std::list< PropertyRelationRuleBase::ConstPointer > RuleResultVectorType
#define MITK_DECLARE_SERVICE_INTERFACE(IFace, IId)
Find image slices visible on a given plane.