Package com.fasterxml.jackson.databind
Class ObjectWriter.Prefetch
- java.lang.Object
-
- com.fasterxml.jackson.databind.ObjectWriter.Prefetch
-
- All Implemented Interfaces:
java.io.Serializable
- Enclosing class:
- ObjectWriter
public static final class ObjectWriter.Prefetch extends java.lang.Object implements java.io.Serializable
As a minor optimization, we will make an effort to pre-fetch a serializer, or at least relevantTypeSerializer
, if given enough information.- Since:
- 2.5
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static ObjectWriter.Prefetch
empty
private JavaType
rootType
Specified root serialization type to use; can be same as runtime type, but usually one of its super types (parent class or interface it implements).private static long
serialVersionUID
private TypeSerializer
typeSerializer
When dealing with polymorphic types, we cannot pre-fetch serializer, but can pre-fetchTypeSerializer
.private JsonSerializer<java.lang.Object>
valueSerializer
We may pre-fetch serializer ifrootType
is known, and if so, reuse it afterwards.
-
Constructor Summary
Constructors Modifier Constructor Description private
Prefetch(JavaType rootT, JsonSerializer<java.lang.Object> ser, TypeSerializer typeSer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectWriter.Prefetch
forRootType(ObjectWriter parent, JavaType newType)
TypeSerializer
getTypeSerializer()
JsonSerializer<java.lang.Object>
getValueSerializer()
boolean
hasSerializer()
void
serialize(com.fasterxml.jackson.core.JsonGenerator gen, java.lang.Object value, DefaultSerializerProvider prov)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
empty
public static final ObjectWriter.Prefetch empty
-
rootType
private final JavaType rootType
Specified root serialization type to use; can be same as runtime type, but usually one of its super types (parent class or interface it implements).
-
valueSerializer
private final JsonSerializer<java.lang.Object> valueSerializer
We may pre-fetch serializer ifrootType
is known, and if so, reuse it afterwards. This allows avoiding further serializer lookups and increases performance a bit on cases where readers are reused.
-
typeSerializer
private final TypeSerializer typeSerializer
When dealing with polymorphic types, we cannot pre-fetch serializer, but can pre-fetchTypeSerializer
.
-
-
Constructor Detail
-
Prefetch
private Prefetch(JavaType rootT, JsonSerializer<java.lang.Object> ser, TypeSerializer typeSer)
-
-
Method Detail
-
forRootType
public ObjectWriter.Prefetch forRootType(ObjectWriter parent, JavaType newType)
-
getValueSerializer
public final JsonSerializer<java.lang.Object> getValueSerializer()
-
getTypeSerializer
public final TypeSerializer getTypeSerializer()
-
hasSerializer
public boolean hasSerializer()
-
serialize
public void serialize(com.fasterxml.jackson.core.JsonGenerator gen, java.lang.Object value, DefaultSerializerProvider prov) throws java.io.IOException
- Throws:
java.io.IOException
-
-