Class MultimapSerializer
java.lang.Object
com.fasterxml.jackson.databind.JsonSerializer<com.google.common.collect.Multimap<?,?>>
com.fasterxml.jackson.databind.ser.std.StdSerializer<com.google.common.collect.Multimap<?,?>>
com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
com.fasterxml.jackson.datatype.guava.ser.MultimapSerializer
- All Implemented Interfaces:
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.jsonschema.SchemaAware, com.fasterxml.jackson.databind.ser.ContextualSerializer, Serializable
public class MultimapSerializer
extends com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
implements com.fasterxml.jackson.databind.ser.ContextualSerializer
Serializer for Guava's
Multimap values. Output format encloses all
value sets in JSON Array, regardless of number of values; this to reduce
complexity (and inaccuracy) of trying to handle cases where values themselves
would be serialized as arrays (in which cases determining whether given array
is a wrapper or value gets complicated and unreliable).- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer
com.fasterxml.jackson.databind.JsonSerializer.None -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.fasterxml.jackson.databind.ser.impl.PropertySerializerMapIf value type can not be statically determined, mapping from runtime value types to serializers are stored in this object.protected final ObjectId of the property filter to use, if any; null if none.Set of entries to omit during serialization, if anyprivate final com.fasterxml.jackson.databind.JsonSerializer<Object> private final com.fasterxml.jackson.databind.BeanPropertyprotected final booleanFlag set if output is forced to be sorted by keys (usually due to annotation).private final com.fasterxml.jackson.databind.type.MapLikeTypeprivate final com.fasterxml.jackson.databind.JsonSerializer<Object> private final com.fasterxml.jackson.databind.jsontype.TypeSerializerprivate static final longFields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
_handledType -
Constructor Summary
ConstructorsModifierConstructorDescriptionMultimapSerializer(com.fasterxml.jackson.databind.type.MapLikeType type, com.fasterxml.jackson.databind.BeanDescription beanDesc, com.fasterxml.jackson.databind.JsonSerializer<Object> keySerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<Object> valueSerializer, Set<String> ignoredEntries, Object filterId) protectedMultimapSerializer(MultimapSerializer src, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.databind.JsonSerializer<?> keySerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<?> valueSerializer, Set<String> ignoredEntries, Object filterId, boolean sortKeys) -
Method Summary
Modifier and TypeMethodDescriptionprotected final com.fasterxml.jackson.databind.JsonSerializer<Object> _findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, com.fasterxml.jackson.databind.JavaType type, com.fasterxml.jackson.databind.SerializerProvider provider) protected final com.fasterxml.jackson.databind.JsonSerializer<Object> _findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, Class<?> type, com.fasterxml.jackson.databind.SerializerProvider provider) protected com.google.common.collect.Multimap<?, ?> _orderEntriesByKey(com.google.common.collect.Multimap<?, ?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?> _withValueTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) voidacceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) com.fasterxml.jackson.databind.JsonSerializer<?> createContextual(com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.BeanProperty property) com.fasterxml.jackson.databind.JsonSerializer<?> com.fasterxml.jackson.databind.JavaTypebooleanhasSingleElement(com.google.common.collect.Multimap<?, ?> map) booleanisEmpty(com.fasterxml.jackson.databind.SerializerProvider prov, com.google.common.collect.Multimap<?, ?> value) voidserialize(com.google.common.collect.Multimap<?, ?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) private final voidserializeFields(com.google.common.collect.Multimap<?, ?> mmap, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) private final voidserializeFilteredFields(com.google.common.collect.Multimap<?, ?> mmap, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) voidserializeWithType(com.google.common.collect.Multimap<?, ?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) protected MultimapSerializerwithResolved(com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.databind.JsonSerializer<?> keySer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<?> valueSer, Set<String> ignored, Object filterId, boolean sortKeys) Methods inherited from class com.fasterxml.jackson.databind.ser.ContainerSerializer
hasContentTypeAnnotation, withValueTypeSerializerMethods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrowMethods inherited from class com.fasterxml.jackson.databind.JsonSerializer
getDelegatee, isEmpty, isUnwrappingSerializer, properties, replaceDelegatee, unwrappingSerializer, usesObjectId, withFilterId, withIgnoredProperties
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
_type
private final com.fasterxml.jackson.databind.type.MapLikeType _type -
_property
private final com.fasterxml.jackson.databind.BeanProperty _property -
_keySerializer
-
_valueTypeSerializer
private final com.fasterxml.jackson.databind.jsontype.TypeSerializer _valueTypeSerializer -
_valueSerializer
-
_ignoredEntries
-
_dynamicValueSerializers
protected com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap _dynamicValueSerializersIf value type can not be statically determined, mapping from runtime value types to serializers are stored in this object.- Since:
- 2.5
-
_filterId
-
_sortKeys
protected final boolean _sortKeysFlag set if output is forced to be sorted by keys (usually due to annotation).- Since:
- 2.15
-
-
Constructor Details
-
MultimapSerializer
public MultimapSerializer(com.fasterxml.jackson.databind.type.MapLikeType type, com.fasterxml.jackson.databind.BeanDescription beanDesc, com.fasterxml.jackson.databind.JsonSerializer<Object> keySerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<Object> valueSerializer, Set<String> ignoredEntries, Object filterId) -
MultimapSerializer
protected MultimapSerializer(MultimapSerializer src, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.databind.JsonSerializer<?> keySerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<?> valueSerializer, Set<String> ignoredEntries, Object filterId, boolean sortKeys) - Since:
- 2.5
-
-
Method Details
-
withResolved
protected MultimapSerializer withResolved(com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.databind.JsonSerializer<?> keySer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<?> valueSer, Set<String> ignored, Object filterId, boolean sortKeys) -
_withValueTypeSerializer
protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?> _withValueTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) - Specified by:
_withValueTypeSerializerin classcom.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
-
createContextual
public com.fasterxml.jackson.databind.JsonSerializer<?> createContextual(com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.BeanProperty property) throws com.fasterxml.jackson.databind.JsonMappingException - Specified by:
createContextualin interfacecom.fasterxml.jackson.databind.ser.ContextualSerializer- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
getContentSerializer
public com.fasterxml.jackson.databind.JsonSerializer<?> getContentSerializer()- Specified by:
getContentSerializerin classcom.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
-
getContentType
public com.fasterxml.jackson.databind.JavaType getContentType()- Specified by:
getContentTypein classcom.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
-
hasSingleElement
public boolean hasSingleElement(com.google.common.collect.Multimap<?, ?> map) - Specified by:
hasSingleElementin classcom.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
-
isEmpty
public boolean isEmpty(com.fasterxml.jackson.databind.SerializerProvider prov, com.google.common.collect.Multimap<?, ?> value) - Overrides:
isEmptyin classcom.fasterxml.jackson.databind.JsonSerializer<com.google.common.collect.Multimap<?,?>>
-
serialize
public void serialize(com.google.common.collect.Multimap<?, ?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException- Specified by:
serializein classcom.fasterxml.jackson.databind.ser.std.StdSerializer<com.google.common.collect.Multimap<?,?>> - Throws:
IOException
-
serializeWithType
public void serializeWithType(com.google.common.collect.Multimap<?, ?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) throws IOException- Overrides:
serializeWithTypein classcom.fasterxml.jackson.databind.JsonSerializer<com.google.common.collect.Multimap<?,?>> - Throws:
IOException
-
serializeFields
private final void serializeFields(com.google.common.collect.Multimap<?, ?> mmap, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException- Throws:
IOException
-
serializeFilteredFields
private final void serializeFilteredFields(com.google.common.collect.Multimap<?, ?> mmap, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException- Throws:
IOException
-
acceptJsonFormatVisitor
public void acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) throws com.fasterxml.jackson.databind.JsonMappingException - Specified by:
acceptJsonFormatVisitorin interfacecom.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable- Overrides:
acceptJsonFormatVisitorin classcom.fasterxml.jackson.databind.ser.std.StdSerializer<com.google.common.collect.Multimap<?,?>> - Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
_orderEntriesByKey
protected com.google.common.collect.Multimap<?,?> _orderEntriesByKey(com.google.common.collect.Multimap<?, ?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException- Throws:
IOException- Since:
- 2.15
-
_findAndAddDynamic
protected final com.fasterxml.jackson.databind.JsonSerializer<Object> _findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, Class<?> type, com.fasterxml.jackson.databind.SerializerProvider provider) throws com.fasterxml.jackson.databind.JsonMappingException - Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
_findAndAddDynamic
protected final com.fasterxml.jackson.databind.JsonSerializer<Object> _findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, com.fasterxml.jackson.databind.JavaType type, com.fasterxml.jackson.databind.SerializerProvider provider) throws com.fasterxml.jackson.databind.JsonMappingException - Throws:
com.fasterxml.jackson.databind.JsonMappingException
-