abstract class GraphUpdater(updateContext: NodeBatchUpdater) : NodeBatchUpdater

Parent class for batch updaters operating on the architecture graph

Inheritors

Constructors

Link copied to clipboard
constructor(updateContext: NodeBatchUpdater)

Properties

Link copied to clipboard
open override val cache: NodeCache

Cache used to ensure that only one instance of each Node is loaded by the algorithm

Link copied to clipboard
open override val deletedNodes: MutableSet<Node>

Nodes which should be deleted

Link copied to clipboard
open override val internalUpdatedNodes: MutableSet<Node>

Nodes which are updated and need to be saved This may contain nodes also present in deletedNodes

Link copied to clipboard
open override val updatedNodes: Set<Node>

Nodes which are updated and need to be saved Does not include any deleted nodes

Functions

Link copied to clipboard
private suspend fun expandRelationPartner(relationPartner: RelationPartner, stack: ArrayDeque<RelationPartner>)

Helper to

Link copied to clipboard
private suspend fun findIncomingRelationPartners(relationPartner: RelationPartner): Set<RelationPartner>

Finds all RelationPartners that are connected to a RelationPartner via incoming Relations. Also considers Interfaces of ComponentVersions.

Link copied to clipboard
private suspend fun findOutgoingRelationPartners(relationPartner: RelationPartner): Set<RelationPartner>

Finds all RelationPartners that are connected to a RelationPartner via outgoing Relations. Also considers Interfaces of ComponentVersions.

Link copied to clipboard
protected suspend fun lockIncomingAndOutgoingRelationPartners(relationPartner: RelationPartner)

Locks all incoming and outgoing RelationPartners of a RelationPartner

Link copied to clipboard
open suspend override fun save(nodeRepository: NodeRepository)
open suspend override fun <T : Node> save(node: T, nodeRepository: NodeRepository): T

Deletes all deletedNodes and saves all updatedNodes to the database