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.SerializableAs 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.Prefetchemptyprivate JavaTyperootTypeSpecified 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 longserialVersionUIDprivate TypeSerializertypeSerializerWhen dealing with polymorphic types, we cannot pre-fetch serializer, but can pre-fetchTypeSerializer.private JsonSerializer<java.lang.Object>valueSerializerWe may pre-fetch serializer ifrootTypeis known, and if so, reuse it afterwards.
-
Constructor Summary
Constructors Modifier Constructor Description privatePrefetch(JavaType rootT, JsonSerializer<java.lang.Object> ser, TypeSerializer typeSer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectWriter.PrefetchforRootType(ObjectWriter parent, JavaType newType)TypeSerializergetTypeSerializer()JsonSerializer<java.lang.Object>getValueSerializer()booleanhasSerializer()voidserialize(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 ifrootTypeis 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
-
-