Skip to content

Commit 83aac86

Browse files
committed
Move PrizeCollectingSteinerTreeWriteStep to dedicated module
1 parent 81a52ad commit 83aac86

File tree

2 files changed

+32
-17
lines changed

2 files changed

+32
-17
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.neo4j.gds.mem.MemoryEstimation;
3939
import org.neo4j.gds.pathfinding.BellmanFordWriteStep;
4040
import org.neo4j.gds.pathfinding.KSpanningTreeWriteStep;
41+
import org.neo4j.gds.pathfinding.PrizeCollectingSteinerTreeWriteStep;
4142
import org.neo4j.gds.pathfinding.ShortestPathWriteStep;
4243
import org.neo4j.gds.paths.WritePathOptionsConfig;
4344
import org.neo4j.gds.paths.astar.config.ShortestPathAStarWriteConfig;
@@ -172,7 +173,13 @@ public <RESULT> RESULT pcst(
172173
PCSTWriteConfig configuration,
173174
ResultBuilder<PCSTWriteConfig, PrizeSteinerTreeResult, RESULT, RelationshipsWritten> resultBuilder
174175
) {
175-
var writeStep = new PrizeCollectingSteinerTreeWriteStep(requestScopedDependencies, writeRelationshipService, configuration);
176+
var writeStep = new PrizeCollectingSteinerTreeWriteStep(
177+
writeRelationshipService,
178+
configuration.writeRelationshipType(),
179+
configuration.writeProperty(),
180+
configuration::resolveResultStore,
181+
configuration.jobId()
182+
);
176183

177184
return runAlgorithmAndWrite(
178185
graphName,

applications/algorithms/path-finding/src/main/java/org/neo4j/gds/applications/algorithms/pathfinding/PrizeCollectingSteinerTreeWriteStep.java renamed to procedures/path-finding-write-steps/src/main/java/org/neo4j/gds/pathfinding/PrizeCollectingSteinerTreeWriteStep.java

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,34 +17,42 @@
1717
* You should have received a copy of the GNU General Public License
1818
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1919
*/
20-
package org.neo4j.gds.applications.algorithms.pathfinding;
20+
package org.neo4j.gds.pathfinding;
2121

2222
import org.neo4j.gds.api.Graph;
2323
import org.neo4j.gds.api.GraphStore;
2424
import org.neo4j.gds.api.ResultStore;
25-
import org.neo4j.gds.applications.algorithms.machinery.RequestScopedDependencies;
2625
import org.neo4j.gds.applications.algorithms.machinery.WriteRelationshipService;
2726
import org.neo4j.gds.applications.algorithms.machinery.WriteStep;
2827
import org.neo4j.gds.applications.algorithms.metadata.RelationshipsWritten;
2928
import org.neo4j.gds.core.utils.progress.JobId;
30-
import org.neo4j.gds.pcst.PCSTWriteConfig;
3129
import org.neo4j.gds.pricesteiner.PrizeSteinerTreeResult;
3230
import org.neo4j.gds.spanningtree.SpanningGraph;
3331
import org.neo4j.gds.spanningtree.SpanningTree;
3432

35-
class PrizeCollectingSteinerTreeWriteStep implements WriteStep<PrizeSteinerTreeResult, RelationshipsWritten> {
36-
private final RequestScopedDependencies requestScopedDependencies;
37-
private final PCSTWriteConfig configuration;
33+
import java.util.Optional;
34+
import java.util.function.Function;
35+
36+
public class PrizeCollectingSteinerTreeWriteStep implements WriteStep<PrizeSteinerTreeResult, RelationshipsWritten> {
3837
private final WriteRelationshipService writeRelationshipService;
38+
private final String writeRelationshipType;
39+
private final String writeProperty;
40+
private final Function<ResultStore, Optional<ResultStore>> resultStoreResolver;
41+
private final JobId jobId;
42+
3943

40-
PrizeCollectingSteinerTreeWriteStep(
41-
RequestScopedDependencies requestScopedDependencies,
44+
public PrizeCollectingSteinerTreeWriteStep(
4245
WriteRelationshipService writeRelationshipService,
43-
PCSTWriteConfig configuration
46+
String writeRelationshipType,
47+
String writeProperty,
48+
Function<ResultStore, Optional<ResultStore>> resultStoreResolver,
49+
JobId jobId
4450
) {
45-
this.requestScopedDependencies = requestScopedDependencies;
46-
this.configuration = configuration;
4751
this.writeRelationshipService = writeRelationshipService;
52+
this.writeRelationshipType = writeRelationshipType;
53+
this.writeProperty = writeProperty;
54+
this.resultStoreResolver = resultStoreResolver;
55+
this.jobId = jobId;
4856
}
4957

5058
@Override
@@ -67,14 +75,14 @@ public RelationshipsWritten execute(
6775
var spanningGraph = new SpanningGraph(graph, spanningTree);
6876

6977
return writeRelationshipService.writeFromGraph(
70-
configuration.writeRelationshipType(),
71-
configuration.writeProperty(),
78+
writeRelationshipType,
79+
writeProperty,
7280
spanningGraph,
7381
spanningGraph,
7482
"PrizeCollectingSteinerWrite",
75-
configuration.resolveResultStore(resultStore),
76-
(a,b,c)-> true,
77-
configuration.jobId()
83+
resultStoreResolver.apply(resultStore),
84+
(a, b, c) -> true,
85+
this.jobId
7886
);
7987
}
8088
}

0 commit comments

Comments
 (0)