1919 */
2020package org .neo4j .gds .procedures .algorithms .community ;
2121
22- import org .neo4j .gds .api .ProcedureReturnColumns ;
2322import org .neo4j .gds .applications .algorithms .machinery .AlgorithmProcessingTimings ;
24- import org .neo4j .gds .core .concurrency .Concurrency ;
25- import org .neo4j .gds .result .AbstractCommunityResultBuilder ;
23+ import org .neo4j .gds .procedures .algorithms .results .StatsResult ;
2624
2725import java .util .Collections ;
2826import java .util .Map ;
2927
30- public class SccStatsResult {
31- public final long componentCount ;
32- public final Map <String , Object > componentDistribution ;
33- public final long preProcessingMillis ;
34- public final long computeMillis ;
35- public final long postProcessingMillis ;
36- public final Map <String , Object > configuration ;
37-
38- public SccStatsResult (
39- long componentCount ,
40- Map <String , Object > componentDistribution ,
41- long preProcessingMillis ,
42- long computeMillis ,
43- long postProcessingMillis ,
44- Map <String , Object > configuration
45- ) {
46- this .postProcessingMillis = postProcessingMillis ;
47- this .preProcessingMillis = preProcessingMillis ;
48- this .computeMillis = computeMillis ;
49- this .configuration = configuration ;
50- this .componentCount = componentCount ;
51- this .componentDistribution = componentDistribution ;
52- }
28+ public record SccStatsResult (
29+ long componentCount ,
30+ Map <String , Object > componentDistribution ,
31+ long preProcessingMillis ,
32+ long computeMillis ,
33+ long postProcessingMillis ,
34+ Map <String , Object > configuration
35+ ) implements StatsResult {
5336
5437 static SccStatsResult emptyFrom (AlgorithmProcessingTimings timings , Map <String , Object > configurationMap ) {
5538 return new SccStatsResult (
@@ -61,32 +44,4 @@ static SccStatsResult emptyFrom(AlgorithmProcessingTimings timings, Map<String,
6144 configurationMap
6245 );
6346 }
64-
65- public static class Builder extends AbstractCommunityResultBuilder <SccStatsResult > {
66- public Builder (ProcedureReturnColumns returnColumns , Concurrency concurrency ) {
67- super (returnColumns , concurrency );
68- }
69-
70- @ Override
71- public SccStatsResult buildResult () {
72- return new SccStatsResult (
73- maybeCommunityCount .orElse (0L ),
74- communityHistogramOrNull (),
75- preProcessingMillis ,
76- computeMillis ,
77- postProcessingDuration ,
78- config .toMap ()
79- );
80- }
81-
82- public SccStatsResult .Builder buildHistogram (boolean buildHistogram ) {
83- this .buildHistogram = buildHistogram ;
84- return this ;
85- }
86-
87- public SccStatsResult .Builder buildCommunityCount (boolean buildCommunityCount ) {
88- this .buildCommunityCount = buildCommunityCount ;
89- return this ;
90- }
91- }
9247}
0 commit comments