| 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; |
| } |
| } |