Skip to content

Commit f114521

Browse files
committed
Replace dynamic dispatch with simpler 'if' check
1 parent 9106823 commit f114521

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

encoders/firebase-encoders-json/src/json/java/com/google/firebase/encoders/json/JsonValueObjectEncoderContext.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ JsonValueObjectEncoderContext invoke(@NonNull String name, @Nullable Object o)
4242
private final Map<Class<?>, ObjectEncoder<?>> objectEncoders;
4343
private final Map<Class<?>, ValueEncoder<?>> valueEncoders;
4444
private final ObjectEncoder<Object> fallbackEncoder;
45-
private final AddMethod addMethod;
45+
private final boolean ignoreNullValues;
4646

4747
JsonValueObjectEncoderContext(
4848
@NonNull Writer writer,
@@ -54,22 +54,25 @@ JsonValueObjectEncoderContext invoke(@NonNull String name, @Nullable Object o)
5454
this.objectEncoders = objectEncoders;
5555
this.valueEncoders = valueEncoders;
5656
this.fallbackEncoder = fallbackEncoder;
57-
this.addMethod = ignoreNullValues ? this::internalAddIgnoreNullValues : this::internalAdd;
57+
this.ignoreNullValues = ignoreNullValues;
5858
}
5959

6060
private JsonValueObjectEncoderContext(JsonValueObjectEncoderContext anotherContext) {
6161
this.jsonWriter = anotherContext.jsonWriter;
6262
this.objectEncoders = anotherContext.objectEncoders;
6363
this.valueEncoders = anotherContext.valueEncoders;
6464
this.fallbackEncoder = anotherContext.fallbackEncoder;
65-
this.addMethod = anotherContext.addMethod;
65+
this.ignoreNullValues = anotherContext.ignoreNullValues;
6666
}
6767

6868
@NonNull
6969
@Override
7070
public JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o)
7171
throws IOException, EncodingException {
72-
return addMethod.invoke(name, o);
72+
if (ignoreNullValues) {
73+
return internalAddIgnoreNullValues(name, o);
74+
}
75+
return internalAdd(name, o);
7376
}
7477

7578
@NonNull

0 commit comments

Comments
 (0)