com.fasterxml.jackson.databind.ser.std

Class AtomicReferenceSerializer

    • Field Detail

      • _referredType

        protected final JavaType _referredType
        Declared type parameter for Optional.
      • _valueTypeSerializer

        protected final TypeSerializer _valueTypeSerializer
        Type serializer used for values, if any.
        Since:
        2.7
      • _unwrapper

        protected final NameTransformer _unwrapper
        To support unwrapped values of dynamic types, will need this:
        Since:
        2.7
      • _contentInclusion

        protected final JsonInclude.Include _contentInclusion
        Further guidance on serialization-inclusion (or not), regarding contained value (if any).
        Since:
        2.7
      • _dynamicSerializers

        protected transient PropertySerializerMap _dynamicSerializers
        If element type can not be statically determined, mapping from runtime type to serializer is handled using this object
        Since:
        2.7
    • Method Detail

      • unwrappingSerializer

        public JsonSerializer<AtomicReference<?>> unwrappingSerializer(NameTransformer transformer)
        Description copied from class: JsonSerializer
        Method that will return serializer instance that produces "unwrapped" serialization, if applicable for type being serialized (which is the case for some serializers that produce JSON Objects as output). If no unwrapped serializer can be constructed, will simply return serializer as-is.

        Default implementation just returns serializer as-is, indicating that no unwrapped variant exists

        Overrides:
        unwrappingSerializer in class JsonSerializer<AtomicReference<?>>
        Parameters:
        transformer - Name transformation to use to convert between names of unwrapper properties
      • createContextual

        public JsonSerializer<?> createContextual(SerializerProvider provider,
                                         BeanProperty property)
                                           throws JsonMappingException
        Description copied from interface: ContextualSerializer
        Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property. Note that instance that this method is called on is typically shared one and as a result method should NOT modify this instance but rather construct and return a new instance. This instance should only be returned as-is, in case it is already suitable for use.
        Specified by:
        createContextual in interface ContextualSerializer
        Parameters:
        provider - Serializer provider to use for accessing config, other serializers
        property - Method or field that represents the property (and is used to access value to serialize). Should be available; but there may be cases where caller can not provide it and null is passed instead (in which case impls usually pass 'this' serializer as is)
        Returns:
        Serializer to use for serializing values of specified property; may be this instance or a new instance.
        Throws:
        JsonMappingException
      • isUnwrappingSerializer

        public boolean isUnwrappingSerializer()
        Description copied from class: JsonSerializer
        Accessor for checking whether this serializer is an "unwrapping" serializer; this is necessary to know since it may also require caller to suppress writing of the leading property name.
        Overrides:
        isUnwrappingSerializer in class JsonSerializer<AtomicReference<?>>
      • serializeWithType

        public void serializeWithType(AtomicReference<?> ref,
                             JsonGenerator g,
                             SerializerProvider provider,
                             TypeSerializer typeSer)
                               throws IOException
        Description copied from class: JsonSerializer
        Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

        Default implementation will throw UnsupportedOperationException to indicate that proper type handling needs to be implemented.

        For simple datatypes written as a single scalar value (JSON String, Number, Boolean), implementation would look like:

          // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
          typeSer.writeTypePrefixForScalar(value, gen);
          serialize(value, gen, provider);
          typeSer.writeTypeSuffixForScalar(value, gen);
        
        and implementations for type serialized as JSON Arrays or Objects would differ slightly, as START-ARRAY/END-ARRAY and START-OBJECT/END-OBJECT pairs need to be properly handled with respect to serializing of contents.

        Overrides:
        serializeWithType in class JsonSerializer<AtomicReference<?>>
        Parameters:
        ref - Value to serialize; can not be null.
        g - Generator used to output resulting Json content
        provider - Provider that can be used to get serializers for serializing Objects value contains, if any.
        typeSer - Type serializer to use for including type information
        Throws:
        IOException

Copyright © 2008–2018 FasterXML. All rights reserved.