@@ -18,11 +18,11 @@ public class MultimapSerializer
18
18
extends JsonSerializer <Multimap <?, ?>>
19
19
implements ContextualSerializer
20
20
{
21
- private final MapLikeType type ;
22
- private final BeanProperty property ;
23
- private final JsonSerializer <Object > keySerializer ;
24
- private final TypeSerializer valueTypeSerializer ;
25
- private final JsonSerializer <Object > valueSerializer ;
21
+ private final MapLikeType _type ;
22
+ private final BeanProperty _property ;
23
+ private final JsonSerializer <Object > _keySerializer ;
24
+ private final TypeSerializer _valueTypeSerializer ;
25
+ private final JsonSerializer <Object > _valueSerializer ;
26
26
27
27
public MultimapSerializer (SerializationConfig config ,
28
28
MapLikeType type ,
@@ -31,32 +31,30 @@ public MultimapSerializer(SerializationConfig config,
31
31
TypeSerializer valueTypeSerializer ,
32
32
JsonSerializer <Object > valueSerializer )
33
33
{
34
- this . type = type ;
35
- this . property = null ;
36
- this . keySerializer = keySerializer ;
37
- this . valueTypeSerializer = valueTypeSerializer ;
38
- this . valueSerializer = valueSerializer ;
34
+ _type = type ;
35
+ _property = null ;
36
+ _keySerializer = keySerializer ;
37
+ _valueTypeSerializer = valueTypeSerializer ;
38
+ _valueSerializer = valueSerializer ;
39
39
}
40
40
41
41
@ SuppressWarnings ("unchecked" )
42
42
protected MultimapSerializer (MultimapSerializer src , BeanProperty property ,
43
43
JsonSerializer <?> keySerializer ,
44
44
TypeSerializer valueTypeSerializer , JsonSerializer <?> valueSerializer )
45
45
{
46
- this . type = src .type ;
47
- this . property = property ;
48
- this . keySerializer = (JsonSerializer <Object >) keySerializer ;
49
- this . valueTypeSerializer = valueTypeSerializer ;
50
- this . valueSerializer = (JsonSerializer <Object >) valueSerializer ;
46
+ _type = src ._type ;
47
+ _property = property ;
48
+ _keySerializer = (JsonSerializer <Object >) keySerializer ;
49
+ _valueTypeSerializer = valueTypeSerializer ;
50
+ _valueSerializer = (JsonSerializer <Object >) valueSerializer ;
51
51
}
52
-
53
-
52
+
54
53
protected MultimapSerializer withResolved (BeanProperty property ,
55
- JsonSerializer <?> keySerializer ,
56
- TypeSerializer valueTypeSerializer , JsonSerializer <?> valueSerializer )
54
+ JsonSerializer <?> keySer ,
55
+ TypeSerializer vts , JsonSerializer <?> valueSer )
57
56
{
58
- return new MultimapSerializer (this , property , keySerializer ,
59
- valueTypeSerializer , valueSerializer );
57
+ return new MultimapSerializer (this , property , keySer , vts , valueSer );
60
58
}
61
59
62
60
/*
@@ -65,26 +63,27 @@ protected MultimapSerializer withResolved(BeanProperty property,
65
63
/**********************************************************
66
64
*/
67
65
66
+ @ Override
68
67
public JsonSerializer <?> createContextual (SerializerProvider provider ,
69
68
BeanProperty property ) throws JsonMappingException
70
69
{
71
- JsonSerializer <?> valueSer = valueSerializer ;
70
+ JsonSerializer <?> valueSer = _valueSerializer ;
72
71
if (valueSer == null ) { // if type is final, can actually resolve:
73
- JavaType valueType = type .getContentType ();
72
+ JavaType valueType = _type .getContentType ();
74
73
if (valueType .isFinal ()) {
75
74
valueSer = provider .findValueSerializer (valueType , property );
76
75
}
77
76
} else if (valueSer instanceof ContextualSerializer ) {
78
77
valueSer = ((ContextualSerializer ) valueSer ).createContextual (provider , property );
79
78
}
80
- JsonSerializer <?> keySer = keySerializer ;
79
+ JsonSerializer <?> keySer = _keySerializer ;
81
80
if (keySer == null ) {
82
- keySer = provider .findKeySerializer (type .getKeyType (), property );
81
+ keySer = provider .findKeySerializer (_type .getKeyType (), property );
83
82
} else if (keySer instanceof ContextualSerializer ) {
84
83
keySer = ((ContextualSerializer ) keySer ).createContextual (provider , property );
85
84
}
86
85
// finally, TypeSerializers may need contextualization as well
87
- TypeSerializer typeSer = valueTypeSerializer ;
86
+ TypeSerializer typeSer = _valueTypeSerializer ;
88
87
if (typeSer != null ) {
89
88
typeSer = typeSer .forProperty (property );
90
89
}
@@ -122,17 +121,17 @@ private final void serializeFields(Multimap<?, ?> value, JsonGenerator jgen, Ser
122
121
throws IOException , JsonProcessingException
123
122
{
124
123
for (Entry <?, ? extends Collection <?>> e : value .asMap ().entrySet ()) {
125
- if (keySerializer != null ) {
126
- keySerializer .serialize (e .getKey (), jgen , provider );
124
+ if (_keySerializer != null ) {
125
+ _keySerializer .serialize (e .getKey (), jgen , provider );
127
126
} else {
128
- provider .findKeySerializer (provider .constructType (String .class ), property )
127
+ provider .findKeySerializer (provider .constructType (String .class ), _property )
129
128
.serialize (e .getKey (), jgen , provider );
130
129
}
131
- if (valueSerializer != null ) {
130
+ if (_valueSerializer != null ) {
132
131
// note: value is a List, but generic type is for contents... so:
133
132
jgen .writeStartArray ();
134
133
for (Object vv : e .getValue ()) {
135
- valueSerializer .serialize (vv , jgen , provider );
134
+ _valueSerializer .serialize (vv , jgen , provider );
136
135
}
137
136
jgen .writeEndArray ();
138
137
} else {
0 commit comments