Skip to content

Commit 8dad799

Browse files
Use for PCST
1 parent 4f64f41 commit 8dad799

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

applications/algorithms/path-finding/src/main/java/org/neo4j/gds/applications/algorithms/pathfinding/PathFindingAlgorithmsWriteModeBusinessFacade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public <RESULT> RESULT pcst(
162162
PCSTWriteConfig configuration,
163163
ResultBuilder<PCSTWriteConfig, PrizeSteinerTreeResult, RESULT, RelationshipsWritten> resultBuilder
164164
) {
165-
var writeStep = new PrizeCollectingSteinerTreeWriteStep(requestScopedDependencies, writeContext, configuration);
165+
var writeStep = new PrizeCollectingSteinerTreeWriteStep(requestScopedDependencies, writeRelationshipService, configuration);
166166

167167
return runAlgorithmAndWrite(
168168
graphName,

applications/algorithms/path-finding/src/main/java/org/neo4j/gds/applications/algorithms/pathfinding/PrizeCollectingSteinerTreeWriteStep.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@
2323
import org.neo4j.gds.api.GraphStore;
2424
import org.neo4j.gds.api.ResultStore;
2525
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;
2727
import org.neo4j.gds.applications.algorithms.machinery.WriteStep;
2828
import org.neo4j.gds.applications.algorithms.metadata.RelationshipsWritten;
2929
import org.neo4j.gds.core.utils.progress.JobId;
30-
import org.neo4j.gds.core.utils.progress.tasks.ProgressTracker;
3130
import org.neo4j.gds.pcst.PCSTWriteConfig;
3231
import org.neo4j.gds.pricesteiner.PrizeSteinerTreeResult;
3332
import org.neo4j.gds.spanningtree.SpanningGraph;
@@ -36,16 +35,16 @@
3635
class PrizeCollectingSteinerTreeWriteStep implements WriteStep<PrizeSteinerTreeResult, RelationshipsWritten> {
3736
private final RequestScopedDependencies requestScopedDependencies;
3837
private final PCSTWriteConfig configuration;
39-
private final WriteContext writeContext;
38+
private final WriteRelationshipService writeRelationshipService;
4039

4140
PrizeCollectingSteinerTreeWriteStep(
4241
RequestScopedDependencies requestScopedDependencies,
43-
WriteContext writeContext,
42+
WriteRelationshipService writeRelationshipService,
4443
PCSTWriteConfig configuration
4544
) {
4645
this.requestScopedDependencies = requestScopedDependencies;
4746
this.configuration = configuration;
48-
this.writeContext = writeContext;
47+
this.writeRelationshipService = writeRelationshipService;
4948
}
5049

5150
@Override
@@ -67,17 +66,15 @@ public RelationshipsWritten execute(
6766
);
6867
var spanningGraph = new SpanningGraph(graph, spanningTree);
6968

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+
);
8279
}
8380
}

0 commit comments

Comments
 (0)