All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.jackson.map.deser.std.AtomicReferenceDeserializer Maven / Gradle / Ivy

Go to download

Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used Java-based cache.

There is a newer version: 2.10.9.2
Show newest version
package org.codehaus.jackson.map.deser.std;

import java.io.IOException;
import java.util.concurrent.atomic.AtomicReference;

import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.type.JavaType;

public class AtomicReferenceDeserializer
    extends StdScalarDeserializer>
    implements ResolvableDeserializer
{
    /**
     * Type of value that we reference
     */
    protected final JavaType _referencedType;
    
    protected final BeanProperty _property;
    
    protected JsonDeserializer _valueDeserializer;
    
    /**
     * @param referencedType Parameterization of this reference
     */
    public AtomicReferenceDeserializer(JavaType referencedType, BeanProperty property)
    {
        super(AtomicReference.class);
        _referencedType = referencedType;
        _property = property;
    }
    
    @Override
    public AtomicReference deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException
    {
        return new AtomicReference(_valueDeserializer.deserialize(jp, ctxt));
    }
    
    @Override
    public void resolve(DeserializationConfig config, DeserializerProvider provider)
        throws JsonMappingException
    {
        _valueDeserializer = provider.findValueDeserializer(config, _referencedType, _property);
    }
}