13 #ifndef mitkPropertyRelationRuleBase_h
14 #define mitkPropertyRelationRuleBase_h
Base class for all MITK exceptions.
Interface implemented by classes that provide write/read access to property information.
Interface implemented by classes that provide access to property information.
Base class of identifiable objects.
std::string UIDType
Type alias for unique identifiers.
Class that can be used to specify nested or wild carded property keys. E.g. for the use in context of...
Base class for defining and detecting property-based relations between data objects.
RelationUIDType GetRelationUID(const IPropertyProvider *source, const IPropertyProvider *destination) const
NodePredicateBase::ConstPointer GetDestinationCandidateIndicator() const
virtual void Disconnect_datalayer(IPropertyOwner *source, const RelationUIDType &relationUID) const =0
bool IsSource(const IPropertyProvider *owner) const
std::vector< RelationType > RelationVectorType
RuleIDType GetRuleIDByInstanceID(const IPropertyProvider *source, const InstanceIDType &instanceID) const
static PropertyKeyPath GetRIIPropertyKeyPath(const std::string propName, const InstanceIDType &instanceID)
std::string GetRIIPropertyRegEx(const std::string propName="", const InstanceIDType &instanceID="") const
Identifiable::UIDType RelationUIDType
std::vector< RelationUIDType > RelationUIDVectorType
virtual std::string GetSourceRoleName() const =0
PropertyRelationRuleBase()=default
std::vector< std::pair< RelationUIDType, RuleIDType > > DataRelationUIDVectorType
std::string GetDestinationUIDByInstanceID(const IPropertyProvider *source, const InstanceIDType &instanceID) const
NodePredicateBase::ConstPointer GetConnectedSourcesDetector() const
static PropertyKeyPath GetRootKeyPath()
bool HasRelation(const IPropertyProvider *source, const IPropertyProvider *destination, RelationType requiredRelation=RelationType::None) const
RelationUIDType Connect(IPropertyOwner *source, const IPropertyProvider *destination) const
std::vector< PropertyKeyPath > GetRelationPropertyPaths(const IPropertyProvider *source, RelationUIDType relationUID, RelationType layer=RelationType::Data) const
Get all property key paths relevant for a given relation.
RelationUIDVectorType GetExistingRelations(const IPropertyProvider *source, RelationType layer=RelationType::None) const
const Identifiable * CastProviderAsIdentifiable(const mitk::IPropertyProvider *provider) const
PropertyRelationRuleBase(const PropertyRelationRuleBase &)
static PropertyKeyPath GetRIIRuleIDPropertyKeyPath(const InstanceIDType &instanceID="")
NodePredicateBase::ConstPointer GetDestinationDetector(const IPropertyProvider *source, RelationUIDType relationUID) const
mitkClassMacroItkParent(PropertyRelationRuleBase, itk::Object)
virtual RuleIDType GetRuleID() const =0
std::vector< InstanceIDType > InstanceIDVectorType
virtual std::string GetDisplayName() const =0
NodePredicateBase::ConstPointer GetSourcesDetector(const IPropertyProvider *destination, RelationType exclusiveRelation=RelationType::None) const
static InstanceIDType GetInstanceIDByPropertyName(const std::string propName)
static PropertyKeyPath GetRIIRelationUIDPropertyKeyPath(const InstanceIDType &instanceID="")
void Disconnect(IPropertyOwner *source, RelationUIDType relationUID, RelationType layer=RelationType::Complete) const
virtual bool IsSourceCandidate(const IPropertyProvider *owner) const
RelationUIDType GetRelationUIDByInstanceID(const IPropertyProvider *source, const InstanceIDType &instanceID) const
InstanceIDVectorType GetInstanceID_IDLayer(const IPropertyProvider *source, const IPropertyProvider *destination) const
InstanceIDType GetInstanceIDByRelationUID(const IPropertyProvider *source, const RelationUIDType &relationUID) const
NodePredicateBase::ConstPointer GetDestinationsDetector(const IPropertyProvider *source, RelationType exclusiveRelation=RelationType::None) const
RelationUIDVectorType GetRelationUIDs(const IPropertyProvider *source, const IPropertyProvider *destination) const
virtual bool IsDestinationCandidate(const IPropertyProvider *owner) const
virtual void Connect_datalayer(IPropertyOwner *source, const IPropertyProvider *destination, const InstanceIDType &instanceID) const =0
static std::vector< std::string > GetPropertyKeys(const IPropertyProvider *owner)
itkCreateAnotherMacro(Self)
std::string InstanceIDType
~PropertyRelationRuleBase() override=default
virtual bool IsSupportedRuleID(const RuleIDType &ruleID) const
RelationVectorType GetRelationTypes(const IPropertyProvider *source, const IPropertyProvider *destination) const
static InstanceIDType NULL_INSTANCE_ID()
virtual bool IsAbstract() const
NodePredicateBase::ConstPointer GetSourceCandidateIndicator() const
void Disconnect(IPropertyOwner *source, const IPropertyProvider *destination, RelationType layer=RelationType::Complete) const
virtual std::string GetDestinationRoleName() const =0
virtual DataRelationUIDVectorType GetRelationUIDs_DataLayer(const IPropertyProvider *source, const IPropertyProvider *destination, const InstanceIDVectorType &instances_IDLayer) const =0
static PropertyKeyPath GetRIIDestinationUIDPropertyKeyPath(const InstanceIDType &instanceID="")
#define mitkExceptionClassMacro(ClassName, SuperClassName)
Convenience macro for defining MITK exception subclasses.
Find image slices visible on a given plane.
@ Data
Only properties from the BaseData's property list.