xref: /aosp_15_r20/external/jackson-databind/attic/MappingIteratorDeserializer.java (revision 0ed15c778abdfe0f5f51f6133673e1619d6e56e4)
1 package com.fasterxml.jackson.databind.deser.std;
2 
3 import java.io.IOException;
4 
5 import com.fasterxml.jackson.core.*;
6 import com.fasterxml.jackson.databind.*;
7 import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
8 
9 public class MappingIteratorDeserializer
10     extends StdDeserializer<MappingIterator<Object>>
11     implements ContextualDeserializer
12 {
13     private static final long serialVersionUID = 1L;
14 
15     protected final JavaType _valueType;
16 
17     protected final JsonDeserializer<Object> _valueDeserializer;
18 
MappingIteratorDeserializer(JavaType valueType)19     public MappingIteratorDeserializer(JavaType valueType) {
20         this(valueType, null);
21     }
22 
MappingIteratorDeserializer(JavaType valueType, JsonDeserializer<Object> vdeser)23     protected MappingIteratorDeserializer(JavaType valueType, JsonDeserializer<Object> vdeser) {
24         super(MappingIterator.class);
25         _valueType = valueType;
26         _valueDeserializer = vdeser;
27     }
28 
29     @Override
createContextual(DeserializationContext ctxt, BeanProperty prop)30     public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
31             BeanProperty prop) throws JsonMappingException
32     {
33         JsonDeserializer<Object> deser = ctxt.findContextualValueDeserializer(_valueType, prop);
34         return (deser == _valueDeserializer) ? this
35                 : new MappingIteratorDeserializer(_valueType, deser);
36     }
37 
38     @Override
deserialize(JsonParser p, DeserializationContext ctxt)39     public MappingIterator<Object> deserialize(JsonParser p,
40             DeserializationContext ctxt) throws IOException,
41             JsonProcessingException
42     {
43         MappingIterator<Object> mit = new MappingIterator<Object>(_valueType, p, ctxt,
44                 _valueDeserializer, false, null);
45         return mit;
46     }
47 }
48