inner class CircularDerivationChecker(val interfaceDefinition: InterfaceDefinition)

Helper to validate if the interfaceDefinition is still visible/invisible derived As InterfaceSpecificationVersion can be derived in a circle, this helper maintains a set of already visited nodes to identify circles A InterfaceSpecificationVersion is only derived if a path the origial source is identified

Parameters

interfaceDefinition

the InterfaceDefinition to validate

Constructors

Link copied to clipboard
constructor(interfaceDefinition: InterfaceDefinition)

Properties

Functions

Link copied to clipboard
private suspend fun checkIsDerivedInvisible(definition: InterfaceDefinition): Boolean

Checks if definition is still derived invisible Only checks, performs no updates!

Link copied to clipboard
private suspend fun checkIsDerivedVisible(definition: InterfaceDefinition): Boolean

Checks if definition is still derived visible Only checks, performs no updates!

Link copied to clipboard
suspend fun checkIsStillDerived(visible: Boolean): Boolean

Checks if interfaceDefinition is still derived visible/invisible Only checks, performs no updates!

Link copied to clipboard

If interfaceDefinition derives (in)visible by self-defined and endDefinition is (in)visibleSelfDefined, returns true, otherwise false

Link copied to clipboard
private suspend fun doesRelationStillDerive(relation: Relation, derivedVisible: Boolean): Boolean
private suspend fun doesRelationStillDerive(relation: Relation, startTemplate: RelationPartnerTemplate<*, *>, endTemplate: RelationPartnerTemplate<*, *>, derivedVisible: Boolean, endDefinition: InterfaceDefinition): Boolean

Checks if a Relation still derives interfaceSpecificationVersion