Class MultimapSerializer
- java.lang.Object
-
- com.fasterxml.jackson.databind.JsonSerializer<T>
-
- com.fasterxml.jackson.databind.ser.std.StdSerializer<T>
-
- 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
,java.io.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'sMultimap
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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap
_dynamicValueSerializers
If value type can not be statically determined, mapping from runtime value types to serializers are stored in this object.protected java.lang.Object
_filterId
Id of the property filter to use, if any; null if none.protected java.util.Set<java.lang.String>
_ignoredEntries
Set of entries to omit during serialization, if anyprivate com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object>
_keySerializer
private com.fasterxml.jackson.databind.BeanProperty
_property
protected boolean
_sortKeys
Flag set if output is forced to be sorted by keys (usually due to annotation).private com.fasterxml.jackson.databind.type.MapLikeType
_type
private com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object>
_valueSerializer
private com.fasterxml.jackson.databind.jsontype.TypeSerializer
_valueTypeSerializer
private static long
serialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description MultimapSerializer(com.fasterxml.jackson.databind.type.MapLikeType type, com.fasterxml.jackson.databind.BeanDescription beanDesc, com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> keySerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> valueSerializer, java.util.Set<java.lang.String> ignoredEntries, java.lang.Object filterId)
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, java.util.Set<java.lang.String> ignoredEntries, java.lang.Object filterId, boolean sortKeys)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object>
_findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, com.fasterxml.jackson.databind.JavaType type, com.fasterxml.jackson.databind.SerializerProvider provider)
protected com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object>
_findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, java.lang.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)
void
acceptJsonFormatVisitor(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<?>
getContentSerializer()
com.fasterxml.jackson.databind.JavaType
getContentType()
boolean
hasSingleElement(com.google.common.collect.Multimap<?,?> map)
boolean
isEmpty(com.fasterxml.jackson.databind.SerializerProvider prov, com.google.common.collect.Multimap<?,?> value)
void
serialize(com.google.common.collect.Multimap<?,?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider)
private void
serializeFields(com.google.common.collect.Multimap<?,?> mmap, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider)
private void
serializeFilteredFields(com.google.common.collect.Multimap<?,?> mmap, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider)
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)
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, java.util.Set<java.lang.String> ignored, java.lang.Object filterId, boolean sortKeys)
-
Methods inherited from class com.fasterxml.jackson.databind.ser.ContainerSerializer
hasContentTypeAnnotation, withValueTypeSerializer
-
Methods 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, wrapAndThrow
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
_type
private final com.fasterxml.jackson.databind.type.MapLikeType _type
-
_property
private final com.fasterxml.jackson.databind.BeanProperty _property
-
_keySerializer
private final com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> _keySerializer
-
_valueTypeSerializer
private final com.fasterxml.jackson.databind.jsontype.TypeSerializer _valueTypeSerializer
-
_valueSerializer
private final com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> _valueSerializer
-
_ignoredEntries
protected final java.util.Set<java.lang.String> _ignoredEntries
Set of entries to omit during serialization, if any- Since:
- 2.5
-
_dynamicValueSerializers
protected com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap _dynamicValueSerializers
If value type can not be statically determined, mapping from runtime value types to serializers are stored in this object.- Since:
- 2.5
-
_filterId
protected final java.lang.Object _filterId
Id of the property filter to use, if any; null if none.- Since:
- 2.5
-
_sortKeys
protected final boolean _sortKeys
Flag set if output is forced to be sorted by keys (usually due to annotation).- Since:
- 2.15
-
-
Constructor Detail
-
MultimapSerializer
public MultimapSerializer(com.fasterxml.jackson.databind.type.MapLikeType type, com.fasterxml.jackson.databind.BeanDescription beanDesc, com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> keySerializer, com.fasterxml.jackson.databind.jsontype.TypeSerializer vts, com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> valueSerializer, java.util.Set<java.lang.String> ignoredEntries, java.lang.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, java.util.Set<java.lang.String> ignoredEntries, java.lang.Object filterId, boolean sortKeys)
- Since:
- 2.5
-
-
Method Detail
-
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, java.util.Set<java.lang.String> ignored, java.lang.Object filterId, boolean sortKeys)
-
_withValueTypeSerializer
protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?> _withValueTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
- Specified by:
_withValueTypeSerializer
in 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:
createContextual
in interfacecom.fasterxml.jackson.databind.ser.ContextualSerializer
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
getContentSerializer
public com.fasterxml.jackson.databind.JsonSerializer<?> getContentSerializer()
- Specified by:
getContentSerializer
in classcom.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
-
getContentType
public com.fasterxml.jackson.databind.JavaType getContentType()
- Specified by:
getContentType
in classcom.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
-
hasSingleElement
public boolean hasSingleElement(com.google.common.collect.Multimap<?,?> map)
- Specified by:
hasSingleElement
in 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:
isEmpty
in 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 java.io.IOException
- Specified by:
serialize
in classcom.fasterxml.jackson.databind.ser.std.StdSerializer<com.google.common.collect.Multimap<?,?>>
- Throws:
java.io.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 java.io.IOException
- Overrides:
serializeWithType
in classcom.fasterxml.jackson.databind.JsonSerializer<com.google.common.collect.Multimap<?,?>>
- Throws:
java.io.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 java.io.IOException
- Throws:
java.io.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 java.io.IOException
- Throws:
java.io.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:
acceptJsonFormatVisitor
in interfacecom.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
- Overrides:
acceptJsonFormatVisitor
in 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 java.io.IOException
- Throws:
java.io.IOException
- Since:
- 2.15
-
_findAndAddDynamic
protected final com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> _findAndAddDynamic(com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap map, java.lang.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<java.lang.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
-
-