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
2222import org .neo4j .gds .api .Graph ;
2323import org .neo4j .gds .api .GraphStore ;
2929import org .neo4j .gds .spanningtree .SpanningGraph ;
3030import org .neo4j .gds .spanningtree .SpanningTree ;
3131import 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