Class 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 relevant TypeSerializer, if given enough information.
    Since:
    2.5
    See Also:
    Serialized Form
    • Field Detail

      • 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 if rootType 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-fetch TypeSerializer.
    • Method Detail

      • getValueSerializer

        public final JsonSerializer<java.lang.Object> getValueSerializer()
      • 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