Skip to content

Commit a2f5974

Browse files
committed
Move SpanningTreeWriteStep to dedicated module
1 parent 83aac86 commit a2f5974

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.neo4j.gds.pathfinding.KSpanningTreeWriteStep;
4141
import org.neo4j.gds.pathfinding.PrizeCollectingSteinerTreeWriteStep;
4242
import org.neo4j.gds.pathfinding.ShortestPathWriteStep;
43+
import org.neo4j.gds.pathfinding.SpanningTreeWriteStep;
4344
import org.neo4j.gds.paths.WritePathOptionsConfig;
4445
import org.neo4j.gds.paths.astar.config.ShortestPathAStarWriteConfig;
4546
import org.neo4j.gds.paths.bellmanford.AllShortestPathsBellmanFordWriteConfig;
@@ -259,7 +260,10 @@ public <RESULT> RESULT spanningTree(
259260
) {
260261
var writeStep = new SpanningTreeWriteStep(
261262
writeRelationshipService,
262-
configuration
263+
configuration.writeRelationshipType(),
264+
configuration.writeProperty(),
265+
configuration::resolveResultStore,
266+
configuration.jobId()
263267
);
264268

265269
return runAlgorithmAndWrite(

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

Lines changed: 22 additions & 12 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,29 @@
2929
import org.neo4j.gds.core.utils.progress.JobId;
3030
import org.neo4j.gds.spanningtree.SpanningGraph;
3131
import org.neo4j.gds.spanningtree.SpanningTree;
32-
import org.neo4j.gds.spanningtree.SpanningTreeWriteConfig;
3332

34-
class SpanningTreeWriteStep implements WriteStep<SpanningTree, RelationshipsWritten> {
33+
import java.util.Optional;
34+
import java.util.function.Function;
35+
36+
public class SpanningTreeWriteStep implements WriteStep<SpanningTree, RelationshipsWritten> {
3537
private final WriteRelationshipService writeRelationshipService;
36-
private final SpanningTreeWriteConfig configuration;
38+
private final String writeRelationshipType;
39+
private final String writeProperty;
40+
private final Function<ResultStore, Optional<ResultStore>> resultStoreResolver;
41+
private final JobId jobId;
3742

38-
SpanningTreeWriteStep(
43+
public SpanningTreeWriteStep(
3944
WriteRelationshipService writeRelationshipService,
40-
SpanningTreeWriteConfig configuration
45+
String writeRelationshipType,
46+
String writeProperty,
47+
Function<ResultStore, Optional<ResultStore>> resultStoreResolver,
48+
JobId jobId
4149
) {
4250
this.writeRelationshipService = writeRelationshipService;
43-
this.configuration = configuration;
51+
this.writeRelationshipType = writeRelationshipType;
52+
this.writeProperty = writeProperty;
53+
this.resultStoreResolver = resultStoreResolver;
54+
this.jobId = jobId;
4455
}
4556

4657
@Override
@@ -53,16 +64,15 @@ public RelationshipsWritten execute(
5364
) {
5465
var spanningGraph = new SpanningGraph(graph, result);
5566

56-
5767
return writeRelationshipService.writeFromGraph(
58-
configuration.writeRelationshipType(),
59-
configuration.writeProperty(),
68+
writeRelationshipType,
69+
writeProperty,
6070
spanningGraph,
6171
graph,
6272
AlgorithmLabel.SpanningTree.asString(),
63-
configuration.resolveResultStore(resultStore),
73+
resultStoreResolver.apply(resultStore),
6474
(a,b,c)-> true,
65-
configuration.jobId()
75+
this.jobId
6676
);
6777
}
6878
}

0 commit comments

Comments
 (0)