-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCalculate_and_set_Instability_for_Java.cypher
More file actions
38 lines (37 loc) · 1.92 KB
/
Calculate_and_set_Instability_for_Java.cypher
File metadata and controls
38 lines (37 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Calculate and set Instability for Java. Requires "Add_file_name and_extension.cypher".
// Instability = outgoing / (outgoing + incoming) Dependencies
MATCH (p:Java:Package)
WHERE p.incomingDependencies > 0
AND p.outgoingDependencies > 0
WITH p
,toFloat(p.outgoingDependencies) / (p.outgoingDependencies + p.incomingDependencies + 1E-38) as instability
,toFloat(p.outgoingDependentTypes) / (p.outgoingDependentTypes + p.incomingDependentTypes + 1E-38) as instabilityTypes
,toFloat(p.outgoingDependentInterfaces) / (p.outgoingDependentInterfaces + p.incomingDependentInterfaces + 1E-38) as instabilityInterfaces
,toFloat(p.outgoingDependentPackages) / (p.outgoingDependentPackages + p.incomingDependentPackages + 1E-38) as instabilityPackages
,toFloat(p.outgoingDependentArtifacts) / (p.outgoingDependentArtifacts + p.incomingDependentArtifacts + 1E-38) as instabilityArtifacts
SET p.instability = instability
,p.instabilityTypes = instabilityTypes
,p.instabilityInterfaces = instabilityInterfaces
,p.instabilityPackages = instabilityPackages
,p.instabilityArtifacts = instabilityArtifacts
WITH p
,instability
,instabilityTypes
,instabilityInterfaces
,instabilityPackages
,instabilityArtifacts
MATCH (artifact:Artifact)-[:CONTAINS]->(p)
RETURN artifact.name AS artifactName
,p.fqn AS fullQualifiedPackageName
,p.name AS packageName
,instability
,instabilityTypes
,instabilityInterfaces
,instabilityPackages
,instabilityArtifacts
,p.outgoingDependencies, p.incomingDependencies
,p.outgoingDependentTypes, p.incomingDependentTypes
,p.outgoingDependentInterfaces, p.incomingDependentInterfaces
,p.outgoingDependentPackages, p.incomingDependentPackages
,p.outgoingDependentArtifacts, p.incomingDependentArtifacts
ORDER BY instability ASC, p.fqn ASC