File: MappingIteratorDeserializer.java

package info (click to toggle)
jackson-databind 2.14.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,540 kB
  • sloc: java: 141,119; xml: 332; makefile: 6; sh: 5
file content (47 lines) | stat: -rw-r--r-- 1,562 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.fasterxml.jackson.databind.deser.std;

import java.io.IOException;

import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.deser.ContextualDeserializer;

public class MappingIteratorDeserializer
    extends StdDeserializer<MappingIterator<Object>>
    implements ContextualDeserializer
{
    private static final long serialVersionUID = 1L;

    protected final JavaType _valueType;

    protected final JsonDeserializer<Object> _valueDeserializer;
    
    public MappingIteratorDeserializer(JavaType valueType) {
        this(valueType, null);
    }

    protected MappingIteratorDeserializer(JavaType valueType, JsonDeserializer<Object> vdeser) {
        super(MappingIterator.class);
        _valueType = valueType;
        _valueDeserializer = vdeser;
    }

    @Override
    public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
            BeanProperty prop) throws JsonMappingException
    {
        JsonDeserializer<Object> deser = ctxt.findContextualValueDeserializer(_valueType, prop);
        return (deser == _valueDeserializer) ? this
                : new MappingIteratorDeserializer(_valueType, deser);
    }

    @Override
    public MappingIterator<Object> deserialize(JsonParser p,
            DeserializationContext ctxt) throws IOException,
            JsonProcessingException
    {
        MappingIterator<Object> mit = new MappingIterator<Object>(_valueType, p, ctxt,
                _valueDeserializer, false, null);
        return mit;
    }
}