Helper class to handle anything InterfaceSpecification derivation related When used to update / delete nodes, also handles updating/deleting of the following kinds of nodes.
IntraComponentDependencySpecification After using, nodes from deletedNodes must be deleted, and nodes from updatedNodes must be saved
Parameters
the NodeBatchUpdater to use for updating/deleting nodes
Types
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
Properties
Nodes which should be deleted
Nodes which are updated and need to be saved This may contain nodes also present in deletedNodes
Helper for updating aggregated issues
Nodes which are updated and need to be saved Does not include any deleted nodes
Functions
derives InterfaceSpecificationVersion for a specified ComponentVersion derives via all incoming Relation Performs a transitive graph update
Updates the InterfaceSpecificationVersion derivation for a single Relation Does NOT perform a graph update Only derives additional InterfaceSpecificationVersion, but does not ensure that all already existing InterfaceDefinition on the end of the relation are still derived
Handles the graph update (InterfaceSpecificationVersion derivation) after a Relation has been created / updated Does NOT validate if the Relation can still exist Only ensures derivation of additional InterfaceSpecificationVersion, but does not validate that no longer derived InterfaceSpecificationVersion are updated/removed
Adds an InterfaceSpecificationVersion to a ComponentVersion Updates the InterfaceDefinition and creates it if necessary
Creates an Interface for an InterfaceDefinition, which has become visible
Called after a Relation has been created Handles the derivation of InterfaceSpecificationVersions
Deletes a Component
Deletes a ComponentVersion
Deletes an Interface Handles deletion of associated IntraComponentDependencyParticipants and, if necessary, IntraComponentDependencySpecifications
Deletes an InterfaceDefinition
Deletes an InterfaceSpecification
Deletes an InterfaceSpecificationVersion
Deletes a IntraComponentDependencySpecification and all its associated IntraComponentDependencyParticipants
Deletes a Relation
Derives an interfaceSpecificationVersion via a relation to a componentVersion Does not perform a graph update
Helper to
Finds all RelationPartners that are connected to a RelationPartner via incoming Relations. Also considers Interfaces of ComponentVersions.
Finds all RelationPartners that are connected to a RelationPartner via outgoing Relations. Also considers Interfaces of ComponentVersions.
Gets or creates if non-existing a InterfaceDefinition for a ComponentVersion and an InterfaceSpecificationVersion If created, adds it to the updated nodes
Handles the update of an InterfaceDefinition. Creates / deletes the associated Interface if necessary Deletes the provided InterfaceDefinition if necessary
Locks all incoming and outgoing RelationPartners of a RelationPartner
Removes an InterfaceSpecificationVersion from a ComponentVersion Updates the InterfaceDefinition and deletes it if necessary
Deletes all deletedNodes and saves all updatedNodes to the database
Called after the template of a Component has been updated Validates InterfaceDefinitions and Relations Does NOT handle updating SubTemplates
Called after the template of an InterfaceSpecification Validates InterfaceDefinitions and Relations oes NOT handle updating SubTemplates
Called after a template of a Relation has been updated Updates the derivation of InterfaceSpecificationVersions Does not validate if the Relation can still exist
Validates InterfaceDefinitions on componentVersion Removes / updates those if InterfaceSpecificationVersions are no longer derived Performs a graph update
Called after the template of a Component or an InterfaceSpecification was updated Validates that interfaceDefinition can still be present on the associated ComponentVersion, and if not, removes it (maybe partially) Does NOT perform any validation of the graph
Validates InterfaceDefinitions on a ComponentVersion Removes / updates those if InterfaceSpecificationVersions are no longer derived Uses CircularDerivationChecker to remove despite circular derivation Performs a graph update
Validates InterfaceDefinitions on ComponentVersions incoming-related to the provided componentVersion Removes / updates those if InterfaceSpecificationVersions are no longer derived Performs a graph update
Validates if a Relation an still exist after the template of either its start or end has been updated If not, deletes the relation and handles the resulting graph update
Validates both incoming and outgoing relations of a RelationPartner after the template of said RelationPartner has been updated Deletes Relations if necessary, and handles updates to InterfaceSpecificationVersion derivation Does NOT validate InterfaceSpecificationVersion derivation independent of Relation deletion