Skip to content

Commit 3a3a97e

Browse files
committed
Move SteinerTreeWriteStep to dedicated module
1 parent a2f5974 commit 3a3a97e

File tree

2 files changed

+34
-15
lines changed

2 files changed

+34
-15
lines changed

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.neo4j.gds.pathfinding.PrizeCollectingSteinerTreeWriteStep;
4242
import org.neo4j.gds.pathfinding.ShortestPathWriteStep;
4343
import org.neo4j.gds.pathfinding.SpanningTreeWriteStep;
44+
import org.neo4j.gds.pathfinding.SteinerTreeWriteStep;
4445
import org.neo4j.gds.paths.WritePathOptionsConfig;
4546
import org.neo4j.gds.paths.astar.config.ShortestPathAStarWriteConfig;
4647
import org.neo4j.gds.paths.bellmanford.AllShortestPathsBellmanFordWriteConfig;
@@ -282,7 +283,14 @@ public <RESULT> RESULT steinerTree(
282283
SteinerTreeWriteConfig configuration,
283284
ResultBuilder<SteinerTreeWriteConfig, SteinerTreeResult, RESULT, RelationshipsWritten> resultBuilder
284285
) {
285-
var writeStep = new SteinerTreeWriteStep(writeRelationshipService, configuration);
286+
var writeStep = new SteinerTreeWriteStep(
287+
writeRelationshipService,
288+
configuration.sourceNode(),
289+
configuration.writeRelationshipType(),
290+
configuration.writeProperty(),
291+
configuration::resolveResultStore,
292+
configuration.jobId()
293+
);
286294

287295
return runAlgorithmAndWrite(
288296
graphName,

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

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
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;
@@ -29,18 +29,31 @@
2929
import org.neo4j.gds.spanningtree.SpanningGraph;
3030
import org.neo4j.gds.spanningtree.SpanningTree;
3131
import org.neo4j.gds.steiner.SteinerTreeResult;
32-
import org.neo4j.gds.steiner.SteinerTreeWriteConfig;
3332

34-
class SteinerTreeWriteStep implements WriteStep<SteinerTreeResult, RelationshipsWritten> {
35-
private final SteinerTreeWriteConfig configuration;
33+
import java.util.Optional;
34+
import java.util.function.Function;
35+
36+
public class SteinerTreeWriteStep implements WriteStep<SteinerTreeResult, RelationshipsWritten> {
3637
private final WriteRelationshipService writeRelationshipService;
38+
private final long sourceNodeId;
39+
private final String writeRelationshipType;
40+
private final String writeProperty;
41+
private final Function<ResultStore, Optional<ResultStore>> resultStoreResolver;
42+
private final JobId jobId;
3743

38-
SteinerTreeWriteStep(
39-
WriteRelationshipService writeRelationshipService,
40-
SteinerTreeWriteConfig configuration
44+
public SteinerTreeWriteStep(
45+
WriteRelationshipService writeRelationshipService, long sourceNodeId,
46+
String writeRelationshipType,
47+
String writeProperty,
48+
Function<ResultStore, Optional<ResultStore>> resultStoreResolver,
49+
JobId jobId
4150
) {
42-
this.configuration = configuration;
4351
this.writeRelationshipService = writeRelationshipService;
52+
this.sourceNodeId = sourceNodeId;
53+
this.writeRelationshipType = writeRelationshipType;
54+
this.writeProperty = writeProperty;
55+
this.resultStoreResolver = resultStoreResolver;
56+
this.jobId = jobId;
4457
}
4558

4659
@Override
@@ -51,8 +64,6 @@ public RelationshipsWritten execute(
5164
SteinerTreeResult steinerTreeResult,
5265
JobId jobId
5366
) {
54-
var sourceNodeId = configuration.sourceNode();
55-
5667
var spanningTree = new SpanningTree(
5768
graph.toMappedNodeId(sourceNodeId),
5869
graph.nodeCount(),
@@ -64,14 +75,14 @@ public RelationshipsWritten execute(
6475
var spanningGraph = new SpanningGraph(graph, spanningTree);
6576

6677
return writeRelationshipService.writeFromGraph(
67-
configuration.writeRelationshipType(),
68-
configuration.writeProperty(),
78+
writeRelationshipType,
79+
writeProperty,
6980
spanningGraph,
7081
graph,
7182
"SteinerWrite",
72-
configuration.resolveResultStore(resultStore),
83+
resultStoreResolver.apply(resultStore),
7384
(a,b,c)-> true,
74-
configuration.jobId()
85+
this.jobId
7586
);
7687
}
7788
}

0 commit comments

Comments
 (0)