23
23
import org .neo4j .gds .api .GraphStore ;
24
24
import org .neo4j .gds .api .ResultStore ;
25
25
import org .neo4j .gds .applications .algorithms .machinery .RequestScopedDependencies ;
26
- import org .neo4j .gds .applications .algorithms .machinery .WriteContext ;
26
+ import org .neo4j .gds .applications .algorithms .machinery .WriteRelationshipService ;
27
27
import org .neo4j .gds .applications .algorithms .machinery .WriteStep ;
28
28
import org .neo4j .gds .applications .algorithms .metadata .RelationshipsWritten ;
29
29
import org .neo4j .gds .core .utils .progress .JobId ;
30
- import org .neo4j .gds .core .utils .progress .tasks .ProgressTracker ;
31
30
import org .neo4j .gds .pcst .PCSTWriteConfig ;
32
31
import org .neo4j .gds .pricesteiner .PrizeSteinerTreeResult ;
33
32
import org .neo4j .gds .spanningtree .SpanningGraph ;
36
35
class PrizeCollectingSteinerTreeWriteStep implements WriteStep <PrizeSteinerTreeResult , RelationshipsWritten > {
37
36
private final RequestScopedDependencies requestScopedDependencies ;
38
37
private final PCSTWriteConfig configuration ;
39
- private final WriteContext writeContext ;
38
+ private final WriteRelationshipService writeRelationshipService ;
40
39
41
40
PrizeCollectingSteinerTreeWriteStep (
42
41
RequestScopedDependencies requestScopedDependencies ,
43
- WriteContext writeContext ,
42
+ WriteRelationshipService writeRelationshipService ,
44
43
PCSTWriteConfig configuration
45
44
) {
46
45
this .requestScopedDependencies = requestScopedDependencies ;
47
46
this .configuration = configuration ;
48
- this .writeContext = writeContext ;
47
+ this .writeRelationshipService = writeRelationshipService ;
49
48
}
50
49
51
50
@ Override
@@ -67,17 +66,15 @@ public RelationshipsWritten execute(
67
66
);
68
67
var spanningGraph = new SpanningGraph (graph , spanningTree );
69
68
70
- var relationshipExporter = writeContext .relationshipExporterBuilder ()
71
- .withGraph (spanningGraph )
72
- .withIdMappingOperator (spanningGraph ::toOriginalNodeId )
73
- .withTerminationFlag (requestScopedDependencies .terminationFlag ())
74
- .withProgressTracker (ProgressTracker .NULL_TRACKER )
75
- .withResultStore (configuration .resolveResultStore (resultStore ))
76
- .withJobId (configuration .jobId ())
77
- .build ();
78
-
79
- relationshipExporter .write (configuration .writeRelationshipType (), configuration .writeProperty ());
80
-
81
- return new RelationshipsWritten (steinerTreeResult .effectiveNodeCount () - 1 );
69
+ return writeRelationshipService .writeFromGraph (
70
+ configuration .writeRelationshipType (),
71
+ configuration .writeProperty (),
72
+ spanningGraph ,
73
+ spanningGraph .rootIdMap (),
74
+ "PrizeCollectingSteinerWrite" ,
75
+ configuration .resolveResultStore (resultStore ),
76
+ (a ,b ,c )-> true ,
77
+ configuration .jobId ()
78
+ );
82
79
}
83
80
}
0 commit comments