Skip to content

Commit f19a9eb

Browse files
committed
Fix overwritten cardinality when updating existing module dependencies
1 parent d1a33f3 commit f19a9eb

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
// Propagates "DEPENDS_ON" relations between modules to their resolved modules with a property "resolved:true".
1+
// Propagates "DEPENDS_ON" relations between modules to their resolved modules with a property "resolved:true" or "updated:true".
22
// Inspired by https://github.com/jQAssistant/jqassistant/blob/4cd7face5d6d2953449d8e6ff5b484f00ffbdc2f/plugin/java/src/main/resources/META-INF/jqassistant-rules/java-classpath.xml#L5
33

44
MATCH (module:TS:Module)-[dependsOn:DEPENDS_ON]->(externalModule:TS:ExternalModule)
55
MATCH (externalModule)-[:IS_IMPLEMENTED_IN]->(resolvedModule:TS:Module)
6+
OPTIONAL MATCH (module)-[existingDependency:DEPENDS_ON]->(resolvedModule)
67
WHERE module <> resolvedModule
7-
CALL { WITH module, dependsOn, resolvedModule
8+
CALL { WITH module, dependsOn, resolvedModule, existingDependency
89
MERGE (module)-[resolvedDependsOn:DEPENDS_ON]->(resolvedModule)
9-
ON CREATE SET resolvedDependsOn = dependsOn
10-
,resolvedDependsOn.resolved = true
10+
ON CREATE SET resolvedDependsOn = dependsOn
11+
,resolvedDependsOn.resolved = true
12+
ON MATCH SET resolvedDependsOn = dependsOn // Overwrites existing properties
13+
,resolvedDependsOn.cardinality = existingDependency.cardinality + dependsOn.cardinality // Add cardinalities
14+
,resolvedDependsOn.updated = true
1115
} IN TRANSACTIONS
1216
RETURN count(*) as resolvedDependencies

0 commit comments

Comments
 (0)