2929import org .neo4j .gds .cliqueCounting .CliqueCountingResult ;
3030import org .neo4j .gds .cliquecounting .CliqueCountingParameters ;
3131import org .neo4j .gds .community .validation .ApproxMaxKCutValidation ;
32- import org .neo4j .gds .community .validation .LocalClusteringCoefficientGraphStoreValidation ;
32+ import org .neo4j .gds .community .validation .UndirectedAndSeedableGraphStoreValidation ;
3333import org .neo4j .gds .conductance .ConductanceParameters ;
3434import org .neo4j .gds .conductance .ConductanceResult ;
3535import org .neo4j .gds .core .JobId ;
4949import org .neo4j .gds .kmeans .KmeansResult ;
5050import org .neo4j .gds .labelpropagation .LabelPropagationParameters ;
5151import org .neo4j .gds .labelpropagation .LabelPropagationResult ;
52+ import org .neo4j .gds .leiden .LeidenParameters ;
53+ import org .neo4j .gds .leiden .LeidenResult ;
5254import org .neo4j .gds .result .TimedAlgorithmResult ;
5355import org .neo4j .gds .results .ResultTransformerBuilder ;
5456import org .neo4j .gds .triangle .LocalClusteringCoefficientParameters ;
@@ -334,7 +336,7 @@ public <TR> CompletableFuture<TR> lcc(
334336 graphName ,
335337 graphParameters ,
336338 relationshipProperty ,
337- LocalClusteringCoefficientGraphStoreValidation .create (parameters .seedProperty ()),
339+ UndirectedAndSeedableGraphStoreValidation .create (parameters .seedProperty ()),
338340 Optional .empty (),
339341 user ,
340342 databaseId
@@ -350,5 +352,36 @@ public <TR> CompletableFuture<TR> lcc(
350352 ).thenApply (resultTransformerBuilder .build (graphResources ));
351353 }
352354
355+ public <TR > CompletableFuture <TR > leiden (
356+ GraphName graphName ,
357+ GraphParameters graphParameters ,
358+ Optional <String > relationshipProperty ,
359+ LeidenParameters parameters ,
360+ JobId jobId ,
361+ boolean logProgress ,
362+ ResultTransformerBuilder <TimedAlgorithmResult <LeidenResult >, TR > resultTransformerBuilder
363+ ) {
364+ // Fetch the Graph the algorithm will operate on
365+ var graphResources = graphStoreCatalogService .fetchGraphResources (
366+ graphName ,
367+ graphParameters ,
368+ relationshipProperty ,
369+ UndirectedAndSeedableGraphStoreValidation .create (parameters .seedProperty ()),
370+ Optional .empty (),
371+ user ,
372+ databaseId
373+ );
374+ var graph = graphResources .graph ();
375+
376+ return computeFacade .leiden (
377+ graph ,
378+ parameters ,
379+ jobId ,
380+ logProgress
381+
382+ ).thenApply (resultTransformerBuilder .build (graphResources ));
383+ }
384+
385+
353386
354387}
0 commit comments