Skip to content

Commit 8ad79b9

Browse files
knutwalkerFlorentinDchris1011011
committed
Use default implementation of value mapper to reduce the number of methods needed to implement
Co-Authored-By: Florentin Dörre <florentin.dorre@neotechnology.com> Co-Authored-By: Christina Eiba <christina.eiba@neo4j.com>
1 parent 97eb0a7 commit 8ad79b9

File tree

3 files changed

+18
-234
lines changed

3 files changed

+18
-234
lines changed

cypher-aggregation/src/main/java/org/neo4j/gds/projection/CypherAggregation.java

Lines changed: 12 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,8 @@
6868
import org.neo4j.values.AnyValue;
6969
import org.neo4j.values.SequenceValue;
7070
import org.neo4j.values.storable.BooleanValue;
71-
import org.neo4j.values.storable.ByteValue;
72-
import org.neo4j.values.storable.IntValue;
7371
import org.neo4j.values.storable.IntegralValue;
74-
import org.neo4j.values.storable.LongValue;
7572
import org.neo4j.values.storable.NoValue;
76-
import org.neo4j.values.storable.ShortValue;
77-
import org.neo4j.values.storable.StringArray;
78-
import org.neo4j.values.storable.StringValue;
7973
import org.neo4j.values.storable.TextArray;
8074
import org.neo4j.values.storable.TextValue;
8175
import org.neo4j.values.virtual.MapValue;
@@ -857,6 +851,15 @@ public NodeLabelToken unsupported(AnyValue value) {
857851
return NodeLabelTokens.invalid();
858852
}
859853

854+
@Override
855+
public NodeLabelToken mapSequence(SequenceValue value) {
856+
if (value.isEmpty()) {
857+
return NodeLabelTokens.empty();
858+
}
859+
860+
return NodeLabelTokens.of(value);
861+
}
862+
860863
@Override
861864
public NodeLabelToken mapNoValue() {
862865
return NodeLabelTokens.missing();
@@ -877,29 +880,10 @@ public NodeLabelToken mapText(TextValue value) {
877880
return NodeLabelTokens.of(value);
878881
}
879882

880-
@Override
881-
public NodeLabelToken mapString(StringValue value) {
882-
return mapText(value);
883-
}
884-
885-
@Override
886-
public NodeLabelToken mapSequence(SequenceValue value) {
887-
if (value.isEmpty()) {
888-
return NodeLabelTokens.empty();
889-
}
890-
891-
return NodeLabelTokens.of(value);
892-
}
893-
894883
@Override
895884
public NodeLabelToken mapTextArray(TextArray value) {
896885
return NodeLabelTokens.of(value);
897886
}
898-
899-
@Override
900-
public NodeLabelToken mapStringArray(StringArray value) {
901-
return mapTextArray(value);
902-
}
903887
}
904888

905889
private enum ExtractNodeId implements PartialValueMapper<Long> {
@@ -910,38 +894,18 @@ public Long unsupported(AnyValue value) {
910894
throw invalidNodeType(value.getTypeName());
911895
}
912896

913-
@Override
914-
public Long mapNode(VirtualNodeValue value) {
915-
return value.id();
916-
}
917-
918897
@Override
919898
public Long mapSequence(SequenceValue value) {
920899
throw invalidNodeType("List");
921900
}
922901

923902
@Override
924-
public Long mapIntegral(IntegralValue value) {
925-
return value.longValue();
926-
}
927-
928-
@Override
929-
public Long mapByte(ByteValue value) {
930-
return value.longValue();
931-
}
932-
933-
@Override
934-
public Long mapShort(ShortValue value) {
935-
return value.longValue();
936-
}
937-
938-
@Override
939-
public Long mapInt(IntValue value) {
940-
return value.longValue();
903+
public Long mapNode(VirtualNodeValue value) {
904+
return value.id();
941905
}
942906

943907
@Override
944-
public Long mapLong(LongValue value) {
908+
public Long mapIntegral(IntegralValue value) {
945909
return value.longValue();
946910
}
947911

cypher-aggregation/src/main/java/org/neo4j/gds/projection/PartialValueMapper.java

Lines changed: 3 additions & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -22,46 +22,16 @@
2222
import org.neo4j.values.AnyValue;
2323
import org.neo4j.values.SequenceValue;
2424
import org.neo4j.values.ValueMapper;
25-
import org.neo4j.values.storable.BooleanArray;
2625
import org.neo4j.values.storable.BooleanValue;
27-
import org.neo4j.values.storable.ByteArray;
28-
import org.neo4j.values.storable.ByteValue;
29-
import org.neo4j.values.storable.CharArray;
30-
import org.neo4j.values.storable.CharValue;
31-
import org.neo4j.values.storable.DateArray;
32-
import org.neo4j.values.storable.DateTimeArray;
3326
import org.neo4j.values.storable.DateTimeValue;
3427
import org.neo4j.values.storable.DateValue;
35-
import org.neo4j.values.storable.DoubleArray;
36-
import org.neo4j.values.storable.DoubleValue;
37-
import org.neo4j.values.storable.DurationArray;
3828
import org.neo4j.values.storable.DurationValue;
39-
import org.neo4j.values.storable.FloatArray;
40-
import org.neo4j.values.storable.FloatValue;
41-
import org.neo4j.values.storable.FloatingPointArray;
42-
import org.neo4j.values.storable.FloatingPointValue;
43-
import org.neo4j.values.storable.IntArray;
44-
import org.neo4j.values.storable.IntValue;
45-
import org.neo4j.values.storable.IntegralArray;
46-
import org.neo4j.values.storable.IntegralValue;
47-
import org.neo4j.values.storable.LocalDateTimeArray;
4829
import org.neo4j.values.storable.LocalDateTimeValue;
49-
import org.neo4j.values.storable.LocalTimeArray;
5030
import org.neo4j.values.storable.LocalTimeValue;
51-
import org.neo4j.values.storable.LongArray;
52-
import org.neo4j.values.storable.LongValue;
5331
import org.neo4j.values.storable.NoValue;
54-
import org.neo4j.values.storable.NumberArray;
5532
import org.neo4j.values.storable.NumberValue;
56-
import org.neo4j.values.storable.PointArray;
5733
import org.neo4j.values.storable.PointValue;
58-
import org.neo4j.values.storable.ShortArray;
59-
import org.neo4j.values.storable.ShortValue;
60-
import org.neo4j.values.storable.StringArray;
61-
import org.neo4j.values.storable.StringValue;
62-
import org.neo4j.values.storable.TextArray;
6334
import org.neo4j.values.storable.TextValue;
64-
import org.neo4j.values.storable.TimeArray;
6535
import org.neo4j.values.storable.TimeValue;
6636
import org.neo4j.values.virtual.MapValue;
6737
import org.neo4j.values.virtual.VirtualNodeValue;
@@ -71,6 +41,9 @@
7141
interface PartialValueMapper<R> extends ValueMapper<R> {
7242
R unsupported(AnyValue value);
7343

44+
@Override
45+
R mapSequence(SequenceValue value);
46+
7447
@Override
7548
default R mapPath(VirtualPathValue value) {
7649
return unsupported(value);
@@ -96,9 +69,6 @@ default R mapNoValue() {
9669
return unsupported(NoValue.NO_VALUE);
9770
}
9871

99-
@Override
100-
R mapSequence(SequenceValue value);
101-
10272
@Override
10373
default R mapText(TextValue value) {
10474
return unsupported(value);
@@ -148,154 +118,4 @@ default R mapDuration(DurationValue value) {
148118
default R mapPoint(PointValue value) {
149119
return unsupported(value);
150120
}
151-
152-
@Override
153-
default R mapString(StringValue value) {
154-
return unsupported(value);
155-
}
156-
157-
@Override
158-
default R mapTextArray(TextArray value) {
159-
return unsupported(value);
160-
}
161-
162-
@Override
163-
default R mapStringArray(StringArray value) {
164-
return unsupported(value);
165-
}
166-
167-
@Override
168-
default R mapChar(CharValue value) {
169-
return unsupported(value);
170-
}
171-
172-
@Override
173-
default R mapCharArray(CharArray value) {
174-
return unsupported(value);
175-
}
176-
177-
@Override
178-
default R mapBooleanArray(BooleanArray value) {
179-
return unsupported(value);
180-
}
181-
182-
@Override
183-
default R mapNumberArray(NumberArray value) {
184-
return unsupported(value);
185-
}
186-
187-
@Override
188-
default R mapIntegral(IntegralValue value) {
189-
return unsupported(value);
190-
}
191-
192-
@Override
193-
default R mapIntegralArray(IntegralArray value) {
194-
return unsupported(value);
195-
}
196-
197-
@Override
198-
default R mapByte(ByteValue value) {
199-
return unsupported(value);
200-
}
201-
202-
@Override
203-
default R mapByteArray(ByteArray value) {
204-
return unsupported(value);
205-
}
206-
207-
@Override
208-
default R mapShort(ShortValue value) {
209-
return unsupported(value);
210-
}
211-
212-
@Override
213-
default R mapShortArray(ShortArray value) {
214-
return unsupported(value);
215-
}
216-
217-
@Override
218-
default R mapInt(IntValue value) {
219-
return unsupported(value);
220-
}
221-
222-
@Override
223-
default R mapIntArray(IntArray value) {
224-
return unsupported(value);
225-
}
226-
227-
@Override
228-
default R mapLong(LongValue value) {
229-
return unsupported(value);
230-
}
231-
232-
@Override
233-
default R mapLongArray(LongArray value) {
234-
return unsupported(value);
235-
}
236-
237-
@Override
238-
default R mapFloatingPoint(FloatingPointValue value) {
239-
return unsupported(value);
240-
}
241-
242-
@Override
243-
default R mapFloatingPointArray(FloatingPointArray value) {
244-
return unsupported(value);
245-
}
246-
247-
@Override
248-
default R mapDouble(DoubleValue value) {
249-
return unsupported(value);
250-
}
251-
252-
@Override
253-
default R mapDoubleArray(DoubleArray value) {
254-
return unsupported(value);
255-
}
256-
257-
@Override
258-
default R mapFloat(FloatValue value) {
259-
return unsupported(value);
260-
}
261-
262-
@Override
263-
default R mapFloatArray(FloatArray value) {
264-
return unsupported(value);
265-
}
266-
267-
@Override
268-
default R mapPointArray(PointArray value) {
269-
return unsupported(value);
270-
}
271-
272-
@Override
273-
default R mapDateTimeArray(DateTimeArray value) {
274-
return unsupported(value);
275-
}
276-
277-
@Override
278-
default R mapLocalDateTimeArray(LocalDateTimeArray value) {
279-
return unsupported(value);
280-
}
281-
282-
@Override
283-
default R mapLocalTimeArray(LocalTimeArray value) {
284-
return unsupported(value);
285-
}
286-
287-
@Override
288-
default R mapTimeArray(TimeArray value) {
289-
return unsupported(value);
290-
}
291-
292-
@Override
293-
default R mapDateArray(DateArray value) {
294-
return unsupported(value);
295-
}
296-
297-
@Override
298-
default R mapDurationArray(DurationArray value) {
299-
return unsupported(value);
300-
}
301121
}

cypher-aggregation/src/main/java/org/neo4j/gds/projection/ValueMapWrapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.neo4j.values.storable.BooleanValue;
2727
import org.neo4j.values.storable.FloatingPointValue;
2828
import org.neo4j.values.storable.IntegralValue;
29-
import org.neo4j.values.storable.StringArray;
29+
import org.neo4j.values.storable.TextArray;
3030
import org.neo4j.values.storable.TextValue;
3131
import org.neo4j.values.storable.Value;
3232
import org.neo4j.values.virtual.MapValue;
@@ -151,11 +151,11 @@ public T mapText(TextValue value) {
151151
}
152152

153153
@Override
154-
public T mapStringArray(StringArray value) {
154+
public T mapTextArray(TextArray value) {
155155
if (List.class.isAssignableFrom(expectedType)) {
156156
return expectedType.cast(List.of(value.asObject()));
157157
}
158-
return PartialValueMapper.super.mapStringArray(value);
158+
return PartialValueMapper.super.mapTextArray(value);
159159
}
160160

161161
@Override

0 commit comments

Comments
 (0)