Skip to content

Commit 9fec284

Browse files
committed
Convert TriangleCount proc results to records
1 parent de13f2f commit 9fec284

File tree

3 files changed

+61
-99
lines changed

3 files changed

+61
-99
lines changed

procedures/facade-api/community-facade-api/src/main/java/org/neo4j/gds/procedures/algorithms/community/TriangleCountMutateResult.java

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,20 @@
2020
package org.neo4j.gds.procedures.algorithms.community;
2121

2222
import org.neo4j.gds.applications.algorithms.machinery.AlgorithmProcessingTimings;
23-
import org.neo4j.gds.result.AbstractResultBuilder;
23+
import org.neo4j.gds.procedures.algorithms.results.MutateNodePropertiesResult;
2424

2525
import java.util.Map;
2626

27-
public class TriangleCountMutateResult extends TriangleCountStatsResult {
28-
public long mutateMillis;
29-
public long nodePropertiesWritten;
27+
public record TriangleCountMutateResult(
28+
long globalTriangleCount,
29+
long nodeCount,
30+
long preProcessingMillis,
31+
long computeMillis,
32+
long mutateMillis,
33+
long nodePropertiesWritten,
34+
Map<String, Object> configuration,
35+
long postProcessingMillis
36+
) implements MutateNodePropertiesResult {
3037

3138
public TriangleCountMutateResult(
3239
long globalTriangleCount,
@@ -37,15 +44,16 @@ public TriangleCountMutateResult(
3744
long nodePropertiesWritten,
3845
Map<String, Object> configuration
3946
) {
40-
super(
47+
this(
4148
globalTriangleCount,
4249
nodeCount,
4350
preProcessingMillis,
4451
computeMillis,
45-
configuration
52+
mutateMillis,
53+
nodePropertiesWritten,
54+
configuration,
55+
0
4656
);
47-
this.mutateMillis = mutateMillis;
48-
this.nodePropertiesWritten = nodePropertiesWritten;
4957
}
5058

5159
public static TriangleCountMutateResult emptyFrom(
@@ -59,29 +67,8 @@ public static TriangleCountMutateResult emptyFrom(
5967
timings.computeMillis,
6068
timings.sideEffectMillis,
6169
0,
62-
configurationMap
70+
configurationMap,
71+
0
6372
);
6473
}
65-
66-
public static class Builder extends AbstractResultBuilder<TriangleCountMutateResult> {
67-
long globalTriangleCount = 0;
68-
69-
public Builder withGlobalTriangleCount(long globalTriangleCount) {
70-
this.globalTriangleCount = globalTriangleCount;
71-
return this;
72-
}
73-
74-
@Override
75-
public TriangleCountMutateResult build() {
76-
return new TriangleCountMutateResult(
77-
globalTriangleCount,
78-
nodeCount,
79-
preProcessingMillis,
80-
computeMillis,
81-
mutateMillis,
82-
nodePropertiesWritten,
83-
config.toMap()
84-
);
85-
}
86-
}
8774
}

procedures/facade-api/community-facade-api/src/main/java/org/neo4j/gds/procedures/algorithms/community/TriangleCountStatsResult.java

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -20,58 +20,46 @@
2020
package org.neo4j.gds.procedures.algorithms.community;
2121

2222
import org.neo4j.gds.applications.algorithms.machinery.AlgorithmProcessingTimings;
23-
import org.neo4j.gds.result.AbstractResultBuilder;
23+
import org.neo4j.gds.procedures.algorithms.results.StatsResult;
2424

2525
import java.util.Map;
2626

27-
public class TriangleCountStatsResult {
28-
public final long globalTriangleCount;
29-
public final long nodeCount;
30-
public final long preProcessingMillis;
31-
public final long computeMillis;
32-
public final long postProcessingMillis;
33-
public final Map<String, Object> configuration;
34-
27+
public record TriangleCountStatsResult(
28+
long globalTriangleCount,
29+
long nodeCount,
30+
long preProcessingMillis,
31+
long computeMillis,
32+
Map<String, Object> configuration,
33+
long postProcessingMillis
34+
) implements StatsResult {
3535
public TriangleCountStatsResult(
3636
long globalTriangleCount,
3737
long nodeCount,
3838
long preProcessingMillis,
3939
long computeMillis,
4040
Map<String, Object> configuration
4141
) {
42-
// post-processing is instant for TC
43-
this.postProcessingMillis = 0;
44-
this.preProcessingMillis = preProcessingMillis;
45-
this.configuration = configuration;
46-
this.computeMillis = computeMillis;
47-
this.globalTriangleCount = globalTriangleCount;
48-
this.nodeCount = nodeCount;
42+
this(
43+
globalTriangleCount,
44+
nodeCount,
45+
preProcessingMillis,
46+
computeMillis,
47+
configuration,
48+
0 // post-processing is instant for TC
49+
);
4950
}
5051

5152
static TriangleCountStatsResult emptyFrom(
5253
AlgorithmProcessingTimings timings,
5354
Map<String, Object> configurationMap
5455
) {
55-
return new TriangleCountStatsResult(0, 0, timings.preProcessingMillis, timings.computeMillis, configurationMap);
56-
}
57-
58-
public static class Builder extends AbstractResultBuilder<TriangleCountStatsResult> {
59-
long globalTriangleCount = 0;
60-
61-
public Builder withGlobalTriangleCount(long globalTriangleCount) {
62-
this.globalTriangleCount = globalTriangleCount;
63-
return this;
64-
}
65-
66-
@Override
67-
public TriangleCountStatsResult build() {
68-
return new TriangleCountStatsResult(
69-
globalTriangleCount,
70-
nodeCount,
71-
preProcessingMillis,
72-
computeMillis,
73-
config.toMap()
74-
);
75-
}
56+
return new TriangleCountStatsResult(
57+
0,
58+
0,
59+
timings.preProcessingMillis,
60+
timings.computeMillis,
61+
configurationMap,
62+
0
63+
);
7664
}
7765
}

procedures/facade-api/community-facade-api/src/main/java/org/neo4j/gds/procedures/algorithms/community/TriangleCountWriteResult.java

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,20 @@
2020
package org.neo4j.gds.procedures.algorithms.community;
2121

2222
import org.neo4j.gds.applications.algorithms.machinery.AlgorithmProcessingTimings;
23-
import org.neo4j.gds.result.AbstractResultBuilder;
23+
import org.neo4j.gds.procedures.algorithms.results.WriteNodePropertiesResult;
2424

2525
import java.util.Map;
2626

27-
public class TriangleCountWriteResult extends TriangleCountStatsResult {
28-
public long writeMillis;
29-
public long nodePropertiesWritten;
27+
public record TriangleCountWriteResult(
28+
long globalTriangleCount,
29+
long nodeCount,
30+
long preProcessingMillis,
31+
long computeMillis,
32+
long writeMillis,
33+
long nodePropertiesWritten,
34+
Map<String, Object> configuration,
35+
long postProcessingMillis
36+
) implements WriteNodePropertiesResult {
3037

3138
public TriangleCountWriteResult(
3239
long globalTriangleCount,
@@ -37,15 +44,16 @@ public TriangleCountWriteResult(
3744
long nodePropertiesWritten,
3845
Map<String, Object> configuration
3946
) {
40-
super(
47+
this(
4148
globalTriangleCount,
4249
nodeCount,
4350
preProcessingMillis,
4451
computeMillis,
45-
configuration
52+
writeMillis,
53+
nodePropertiesWritten,
54+
configuration,
55+
0
4656
);
47-
this.writeMillis = writeMillis;
48-
this.nodePropertiesWritten = nodePropertiesWritten;
4957
}
5058

5159
static TriangleCountWriteResult emptyFrom(
@@ -59,29 +67,8 @@ static TriangleCountWriteResult emptyFrom(
5967
timings.computeMillis,
6068
timings.sideEffectMillis,
6169
0,
62-
configurationMap
70+
configurationMap,
71+
0
6372
);
6473
}
65-
66-
public static class Builder extends AbstractResultBuilder<TriangleCountWriteResult> {
67-
long globalTriangleCount = 0;
68-
69-
public Builder withGlobalTriangleCount(long globalTriangleCount) {
70-
this.globalTriangleCount = globalTriangleCount;
71-
return this;
72-
}
73-
74-
@Override
75-
public TriangleCountWriteResult build() {
76-
return new TriangleCountWriteResult(
77-
globalTriangleCount,
78-
nodeCount,
79-
preProcessingMillis,
80-
computeMillis,
81-
writeMillis,
82-
nodePropertiesWritten,
83-
config.toMap()
84-
);
85-
}
86-
}
8774
}

0 commit comments

Comments
 (0)