public class MultimapSerializer
extends com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
implements com.fasterxml.jackson.databind.ser.ContextualSerializer
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).
Missing features, compared to standard Java Maps:
Modifier and Type | Field and 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 Object |
_filterId
Id of the property filter to use, if any; null if none.
|
protected Set<String> |
_ignoredEntries
Set of entries to omit during serialization, if any
|
protected boolean |
_sortKeys
Flag set if output is forced to be sorted by keys (usually due
to annotation).
|
Modifier | Constructor and Description |
---|---|
|
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) |
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) |
Modifier and Type | Method and Description |
---|---|
protected 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.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 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) |
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,
Set<String> ignored,
Object filterId,
boolean sortKeys) |
hasContentTypeAnnotation, withValueTypeSerializer
_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow
protected final Set<String> _ignoredEntries
protected com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap _dynamicValueSerializers
protected final Object _filterId
protected final boolean _sortKeys
NOTE: not yet used.
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)
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)
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)
protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?> _withValueTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
_withValueTypeSerializer
in class com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
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
createContextual
in interface com.fasterxml.jackson.databind.ser.ContextualSerializer
com.fasterxml.jackson.databind.JsonMappingException
public com.fasterxml.jackson.databind.JsonSerializer<?> getContentSerializer()
getContentSerializer
in class com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
public com.fasterxml.jackson.databind.JavaType getContentType()
getContentType
in class com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
public boolean hasSingleElement(com.google.common.collect.Multimap<?,?> map)
hasSingleElement
in class com.fasterxml.jackson.databind.ser.ContainerSerializer<com.google.common.collect.Multimap<?,?>>
public boolean isEmpty(com.fasterxml.jackson.databind.SerializerProvider prov, com.google.common.collect.Multimap<?,?> value)
isEmpty
in class com.fasterxml.jackson.databind.JsonSerializer<com.google.common.collect.Multimap<?,?>>
public void serialize(com.google.common.collect.Multimap<?,?> value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException
serialize
in class com.fasterxml.jackson.databind.ser.std.StdSerializer<com.google.common.collect.Multimap<?,?>>
IOException
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
serializeWithType
in class com.fasterxml.jackson.databind.JsonSerializer<com.google.common.collect.Multimap<?,?>>
IOException
public void acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) throws com.fasterxml.jackson.databind.JsonMappingException
acceptJsonFormatVisitor
in interface com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
acceptJsonFormatVisitor
in class com.fasterxml.jackson.databind.ser.std.StdSerializer<com.google.common.collect.Multimap<?,?>>
com.fasterxml.jackson.databind.JsonMappingException
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
com.fasterxml.jackson.databind.JsonMappingException
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
com.fasterxml.jackson.databind.JsonMappingException
Copyright © 2017 FasterXML. All rights reserved.