Skip to content

Commit 02a5eed

Browse files
committed
KnnContext is a record
1 parent fc6ec8d commit 02a5eed

File tree

5 files changed

+16
-37
lines changed

5 files changed

+16
-37
lines changed

algo/src/main/java/org/neo4j/gds/similarity/knn/KnnContext.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,21 @@
1919
*/
2020
package org.neo4j.gds.similarity.knn;
2121

22-
import org.immutables.value.Value;
23-
import org.neo4j.gds.annotation.ValueClass;
2422
import org.neo4j.gds.core.concurrency.DefaultPool;
2523
import org.neo4j.gds.core.utils.progress.tasks.ProgressTracker;
2624

2725
import java.util.concurrent.ExecutorService;
2826

29-
@ValueClass
30-
public interface KnnContext {
27+
public record KnnContext(ExecutorService executor, ProgressTracker progressTracker) {
3128

32-
@Value.Default
33-
default ExecutorService executor() {
34-
return DefaultPool.INSTANCE;
29+
public KnnContext(ProgressTracker progressTracker) {
30+
this(DefaultPool.INSTANCE, progressTracker);
3531
}
3632

37-
@Value.Default
38-
default ProgressTracker progressTracker() {
39-
return ProgressTracker.NULL_TRACKER;
40-
}
41-
42-
static KnnContext empty() {
43-
return ImmutableKnnContext.builder().build();
33+
public static KnnContext empty() {
34+
return new KnnContext(
35+
DefaultPool.INSTANCE,
36+
ProgressTracker.NULL_TRACKER
37+
);
4438
}
4539
}

algo/src/test/java/org/neo4j/gds/similarity/filteredknn/FilteredKnnTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.neo4j.gds.similarity.NodeFilterSpec;
3232
import org.neo4j.gds.similarity.SimilarityResult;
3333
import org.neo4j.gds.similarity.filtering.NodeIdNodeFilterSpec;
34-
import org.neo4j.gds.similarity.knn.ImmutableKnnContext;
3534
import org.neo4j.gds.similarity.knn.KnnContext;
3635
import org.neo4j.gds.similarity.knn.KnnNodePropertySpec;
3736
import org.neo4j.gds.similarity.knn.KnnParametersSansNodeCount;
@@ -108,7 +107,7 @@ void shouldRunJustLikeKnnWhenYouDoNotSpecifySourceNodeFilterOrTargetNodeFilter()
108107
var params = filteredSans.finalize(graph.nodeCount());
109108

110109

111-
var knnContext = ImmutableKnnContext.builder().build();
110+
var knnContext = KnnContext.empty();
112111

113112
var knn = FilteredKnn.createWithoutSeeding(graph, params, knnContext, TerminationFlag.RUNNING_TRUE);
114113
var result = knn.compute();

algo/src/test/java/org/neo4j/gds/similarity/knn/KnnTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import org.neo4j.gds.collections.ha.HugeObjectArray;
3535
import org.neo4j.gds.compat.TestLog;
3636
import org.neo4j.gds.core.concurrency.Concurrency;
37-
import org.neo4j.gds.core.concurrency.DefaultPool;
3837
import org.neo4j.gds.core.loading.NullPropertyMap;
3938
import org.neo4j.gds.extension.GdlExtension;
4039
import org.neo4j.gds.extension.GdlGraph;
@@ -95,7 +94,7 @@ class KnnTest {
9594
@Inject
9695
private TestGraph multPropMissingGraph;
9796

98-
private KnnContext context = ImmutableKnnContext.builder().executor(DefaultPool.INSTANCE).build();
97+
private final KnnContext context = KnnContext.empty();
9998

10099
@Test
101100
void shouldRun() {
@@ -559,10 +558,7 @@ void shouldLogProgress() {
559558
new Concurrency(1)
560559
);
561560

562-
var progressContext = ImmutableKnnContext.builder()
563-
.progressTracker(progressTrackerWithLog.progressTracker())
564-
.executor(DefaultPool.INSTANCE)
565-
.build();
561+
var progressContext = new KnnContext(progressTrackerWithLog.progressTracker());
566562
var log = progressTrackerWithLog.log();
567563

568564
var knn = Knn.create(

applications/algorithms/similarity/src/main/java/org/neo4j/gds/applications/algorithms/similarity/SimilarityAlgorithms.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import org.neo4j.gds.similarity.filteredknn.FilteredKnnResult;
2828
import org.neo4j.gds.similarity.filterednodesim.FilteredNodeSimilarityParameters;
2929
import org.neo4j.gds.similarity.filtering.NodeFilter;
30-
import org.neo4j.gds.similarity.knn.ImmutableKnnContext;
3130
import org.neo4j.gds.similarity.knn.Knn;
31+
import org.neo4j.gds.similarity.knn.KnnContext;
3232
import org.neo4j.gds.similarity.knn.KnnNeighborFilterFactory;
3333
import org.neo4j.gds.similarity.knn.KnnParameters;
3434
import org.neo4j.gds.similarity.knn.KnnResult;
@@ -55,11 +55,7 @@ public FilteredKnnResult filteredKnn(
5555
FilteredKnnParameters parameters,
5656
ProgressTracker progressTracker
5757
) {
58-
var knnContext = ImmutableKnnContext
59-
.builder()
60-
.progressTracker(progressTracker)
61-
.executor(DefaultPool.INSTANCE)
62-
.build();
58+
var knnContext = new KnnContext(progressTracker);
6359

6460
var algorithm = FilteredKNNFactory.create(graph, parameters, knnContext,terminationFlag);
6561

@@ -98,11 +94,7 @@ KnnResult knn(Graph graph, KnnParameters parameters, ProgressTracker progressTra
9894
new SimilarityFunction(SimilarityComputer.ofProperties(graph, parameters.nodePropertySpecs())),
9995
new KnnNeighborFilterFactory(graph.nodeCount()),
10096
Optional.empty(),
101-
ImmutableKnnContext
102-
.builder()
103-
.progressTracker(progressTracker)
104-
.executor(DefaultPool.INSTANCE)
105-
.build(),
97+
new KnnContext(progressTracker),
10698
terminationFlag
10799
);
108100

procedures/pipelines-facade/src/main/java/org/neo4j/gds/procedures/pipelines/ApproximateLinkPrediction.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@
2020
package org.neo4j.gds.procedures.pipelines;
2121

2222
import org.neo4j.gds.api.Graph;
23-
import org.neo4j.gds.core.concurrency.DefaultPool;
2423
import org.neo4j.gds.core.utils.progress.tasks.ProgressTracker;
2524
import org.neo4j.gds.mem.MemoryEstimation;
2625
import org.neo4j.gds.ml.linkmodels.LinkPredictionResult;
2726
import org.neo4j.gds.ml.linkmodels.PredictedLink;
2827
import org.neo4j.gds.ml.models.Classifier;
2928
import org.neo4j.gds.ml.pipeline.linkPipeline.LinkFeatureExtractor;
30-
import org.neo4j.gds.similarity.knn.ImmutableKnnContext;
3129
import org.neo4j.gds.similarity.knn.Knn;
30+
import org.neo4j.gds.similarity.knn.KnnContext;
3231
import org.neo4j.gds.similarity.knn.KnnParameters;
3332
import org.neo4j.gds.similarity.knn.KnnResult;
3433
import org.neo4j.gds.termination.TerminationFlag;
@@ -80,8 +79,7 @@ LinkPredictionResult predictLinks(LinkPredictionSimilarityComputer linkPredictio
8079
targetNodeFilter
8180
),
8281
Optional.empty(),
83-
ImmutableKnnContext.of(
84-
DefaultPool.INSTANCE,
82+
new KnnContext(
8583
progressTracker
8684
),
8785
TerminationFlag.RUNNING_TRUE

0 commit comments

Comments
 (0)