Skip to content
This repository was archived by the owner on Jan 20, 2025. It is now read-only.

Commit 3de101e

Browse files
author
Pascal Gélinas
committed
Fix issue #30: Added handling for Guava's Optional de/serialization with typing.
1 parent 8e69c91 commit 3de101e

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/main/java/com/fasterxml/jackson/datatype/guava/deser/GuavaOptionalDeserializer.java

+7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.fasterxml.jackson.databind.DeserializationContext;
88
import com.fasterxml.jackson.databind.JavaType;
99
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
10+
import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
1011
import com.google.common.base.Optional;
1112

1213
public final class GuavaOptionalDeserializer extends StdDeserializer<Optional<?>> {
@@ -28,4 +29,10 @@ public Optional<?> deserialize(JsonParser jp, DeserializationContext ctxt) throw
2829
Object reference = ctxt.findRootValueDeserializer(_referenceType).deserialize(jp, ctxt);
2930
return Optional.of(reference);
3031
}
32+
33+
@Override
34+
public Optional<?> deserializeWithType(JsonParser jp, DeserializationContext ctxt, TypeDeserializer typeDeserializer)
35+
throws IOException, JsonProcessingException {
36+
return deserialize(jp, ctxt);
37+
}
3138
}

src/main/java/com/fasterxml/jackson/datatype/guava/ser/GuavaOptionalSerializer.java

+10
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
import com.fasterxml.jackson.core.JsonGenerationException;
66
import com.fasterxml.jackson.core.JsonGenerator;
7+
import com.fasterxml.jackson.core.JsonProcessingException;
78
import com.fasterxml.jackson.databind.JavaType;
89
import com.fasterxml.jackson.databind.SerializerProvider;
10+
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
911
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
1012
import com.google.common.base.Optional;
1113

@@ -23,4 +25,12 @@ public void serialize(Optional<?> value, JsonGenerator jgen, SerializerProvider
2325
provider.defaultSerializeNull(jgen);
2426
}
2527
}
28+
29+
@Override
30+
public void serializeWithType(Optional<?> value,
31+
JsonGenerator jgen,
32+
SerializerProvider provider,
33+
TypeSerializer typeSer) throws IOException, JsonProcessingException {
34+
serialize(value, jgen, provider);
35+
}
2636
}

0 commit comments

Comments
 (0)