Skip to content

Commit 4533eae

Browse files
committed
Add overload to NodePropertyValues::dimension to specify nodeId
1 parent d3fd6fa commit 4533eae

File tree

11 files changed

+29
-17
lines changed

11 files changed

+29
-17
lines changed

algo/src/main/java/org/neo4j/gds/similarity/knn/metrics/NullCheckingNodePropertyValues.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ public ValueType valueType() {
8080
}
8181

8282
@Override
83-
public Optional<Integer> dimension() {
84-
return properties.dimension();
83+
public Optional<Integer> dimension(long nodeId) {
84+
return properties.dimension(nodeId);
8585
}
8686

8787
@Override

core-api/src/main/java/org/neo4j/gds/api/properties/nodes/NodePropertyValues.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,19 @@ default long[] longArrayValue(long nodeId) {
6767
*
6868
* @return the dimension of the properties stored, or empty if the dimension cannot easily be retrieved.
6969
*/
70-
Optional<Integer> dimension();
70+
default Optional<Integer> dimension() {
71+
return dimension(0L);
72+
}
73+
74+
/**
75+
* The dimension of the properties.
76+
* For scalar values, this is 1.
77+
* For arrays, this is the length of the array stored for the given node id.
78+
* If that array is {@code null}, this method returns {@link Optional#empty()}.
79+
*
80+
* @return the dimension of the properties stored, or empty if the dimension cannot easily be retrieved.
81+
*/
82+
Optional<Integer> dimension(long nodeId);
7183

7284
/**
7385
* @return the maximum long value contained in the mapping or an empty {@link OptionalLong} if the mapping is

core/src/main/java/org/neo4j/gds/api/properties/nodes/BinaryArrayNodePropertyValues.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public Object getObject(long nodeId) {
5959
}
6060

6161
@Override
62-
public Optional<Integer> dimension() {
62+
public Optional<Integer> dimension(long nodeId) {
6363
return Optional.of(embeddingDimension);
6464
}
6565

core/src/main/java/org/neo4j/gds/api/properties/nodes/DoubleArrayNodePropertyValues.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ default ValueType valueType() {
5454
}
5555

5656
@Override
57-
default Optional<Integer> dimension() {
58-
var value = doubleArrayValue(0);
57+
default Optional<Integer> dimension(long nodeId) {
58+
var value = doubleArrayValue(nodeId);
5959
if (value == null) {
6060
return Optional.empty();
6161
}

core/src/main/java/org/neo4j/gds/api/properties/nodes/DoubleNodePropertyValues.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ default ValueType valueType() {
4141
}
4242

4343
@Override
44-
default Optional<Integer> dimension() {
44+
default Optional<Integer> dimension(long nodeId) {
4545
return Optional.of(1);
4646
}
4747

core/src/main/java/org/neo4j/gds/api/properties/nodes/FloatArrayNodePropertyValues.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ default ValueType valueType() {
5555
}
5656

5757
@Override
58-
default Optional<Integer> dimension() {
59-
var value = floatArrayValue(0);
58+
default Optional<Integer> dimension(long nodeId) {
59+
var value = floatArrayValue(nodeId);
6060
if (value == null) {
6161
return Optional.empty();
6262
}

core/src/main/java/org/neo4j/gds/api/properties/nodes/LongArrayNodePropertyValues.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ default ValueType valueType() {
3939
}
4040

4141
@Override
42-
default Optional<Integer> dimension() {
43-
var value = longArrayValue(0);
42+
default Optional<Integer> dimension(long nodeId) {
43+
var value = longArrayValue(nodeId);
4444
if (value == null) {
4545
return Optional.empty();
4646
}

core/src/main/java/org/neo4j/gds/api/properties/nodes/LongNodePropertyValues.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ default ValueType valueType() {
4343
}
4444

4545
@Override
46-
default Optional<Integer> dimension() {
46+
default Optional<Integer> dimension(long nodeId) {
4747
return Optional.of(1);
4848
}
4949

core/src/main/java/org/neo4j/gds/core/huge/FilteredNodePropertyValues.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public ValueType valueType() {
7777
}
7878

7979
@Override
80-
public Optional<Integer> dimension() {
81-
return properties.dimension();
80+
public Optional<Integer> dimension(long nodeId) {
81+
return properties.dimension(translateId(nodeId));
8282
}
8383

8484
@Override

core/src/main/java/org/neo4j/gds/core/loading/NullPropertyMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
public abstract class NullPropertyMap implements NodePropertyValues {
3535

3636
@Override
37-
public Optional<Integer> dimension() {
37+
public Optional<Integer> dimension(long nodeId) {
3838
return Optional.of(1);
3939
}
4040

0 commit comments

Comments
 (0)